刚刚开始想用位运算,一直算到64位的,但是发现js的位运算只能到达31位...然后再高就是又一个循环..于是就想到将十进制转换十六进制,然后取高位再运算一次 function long2bin(p) { var r = new ArrayBuffer(8); r[7] = p & 0xff; r[6] = p >> 8 & 0xff; r[5] = p >> 16 & 0xff; r[4] = p >> 24 & 0xff; p = p.toString(16); //转换成16进制,取出高位 if (p.length <= 8) { return r; } p = parseInt(p.substr(0, p.length - 8),16);//取出高位,并转换成int r[3] = p & 0xff; r[2] = p >> 8 & 0xff; r[1] = p >> 16 & 0xff; r[0] = p >> 24 & 0xff; return r; } var l = 1234567891011; long2bin(l);
刚刚开始想用位运算,一直算到64位的,但是发现js的位运算只能到达31位...然后再高就是又一个循环..
于是就想到将十进制转换十六进制,然后取高位再运算一次