function reverseBits(n: number, width: number = 32): number {
const bin = n.toString(2).padStart(width, "0");
const reversed = [...bin].reverse().join("");
return (parseInt(reversed, 2) >>> 0); // force unsigned 32‑bit
}
function bits(n: number, width: number = 32): string {
const bin = (n >>> 0).toString(2).padStart(width, "0");
return bin.match(/.{8}/g)!.join(" ");
}
const a = 19;
const b = 3;
const ra = reverseBits(a);
const rb = reverseBits(b);
console.log("Original 19:", bits(a));
console.log("Reversed 19:", bits(ra));
console.log();
console.log("Original 3: ", bits(b));
console.log("Reversed 3: ", bits(rb));
/*
run:
Original 19: 00000000 00000000 00000000 00010011
Reversed 19: 11001000 00000000 00000000 00000000
Original 3: 00000000 00000000 00000000 00000011
Reversed 3: 11000000 00000000 00000000 00000000
*/