var reverseBits = function(n) {
var num = 0;
for(var j=31;j>=0;j--){
num += n%2*Math.pow(2,j);
n = parseInt(n/2);
}
return num;
};
var reverseBits = function(n) {
var num=0;
for(var j=31;j>=0;j--,n>>1)
if(n&1){
num += Math.pow(2,j);
}
return num;
};
为什么要?
parseInt
,Math.floor
更好在js里所有的数是64位浮点数,对于位操作

op
,x op y
都会对x
y
先执行toUint32
/toInt32
操作,如果op
是位移操作,还要y = y modulo 32
所以在js里面位操作比较慢也是很正常的。标准里
<<
定义