我分析一个网站的js代码时碰到下面这些
function  byteToHexString( b) {
       var  hexDigits = new Array( "0", "1", "2", "3", "4", "5", "6",
                                     "7",
                                   "8", "9", "a", "b", "c", "d", "e",
                                   "f" );
        var n = parseInt(b);
        if (n < 0) {
            n = 256 + n;
        }        var d1 =  parseInt(n  / 16) ;
        var d2 = n % 16;
        return hexDigits[d1] + hexDigits[d2];
    }function  xor(origin,  key ) {
        var result = "";
        key = parseInt( key );
        for( var i=0; i<origin.length ; i++){
           var x =  parseInt(  String( origin.charCodeAt(i)) );
           result +=  byteToHexString(  x ^ key) ;
        }
        return result;
    }调用时:
a=xor("78e0d4f883e88219",100);
结果a的值是个64位的字符串,那个 x^key 看不懂,key传进去的是100,那不是x的100次方吗,那byteToHexString里的parseInt不会报错吗,最后的结果是怎么得出来的,我不太懂java,只是想把这两个函数用delphi写出来,麻烦大家帮帮忙看看~~