function reverseBits(num: number) {
let count: number = 32; // 32-bits
let reverseBits: number = 0;
while (num) {
reverseBits = (reverseBits << 1) | (num & 1);
num >>>= 1;
count--;
}
reverseBits <<= count;
return reverseBits >>> 0; // Convert unsigned 32-bit integer
}
let num: number = 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"
*/