function reverseBits(num) {
let count = 32; // 32-bits
let reverseBits = 0;
while (num) {
reverseBits = (reverseBits << 1) | (num & 1);
num >>>= 1;
count--;
}
reverseBits <<= count;
return reverseBits >>> 0; // Convert unsigned 32-bit integer
}
let num = 42;
console.log(("00000000000000000000000000000000" + num.toString(2)).substr(-32));
num = reverseBits(num);
console.log(("00000000000000000000000000000000" + num.toString(2)).substr(-32) + '\n');
num = 19;
console.log(("00000000000000000000000000000000" + num.toString(2)).substr(-32));
num = reverseBits(num);
console.log(("00000000000000000000000000000000" + num.toString(2)).substr(-32));
/*
run:
00000000000000000000000000101010
01010100000000000000000000000000
00000000000000000000000000010011
11001000000000000000000000000000
*/