const BIT_SIZE = 16;
// Print binary representation of the bits
function printBinary(bits) {
let binary = bits.toString(2).padStart(BIT_SIZE, '0');
console.log(binary);
}
// Find the first set bit (least significant)
function findFirstSetBit(bits) {
for (let i = 0; i < BIT_SIZE; i++) {
if ((bits >> i) & 1) {
return i;
}
}
return -1; // No bits set
}
// Print all set bit indexes
function printSetBitIndexes(bits) {
for (let i = 0; i < BIT_SIZE; i++) {
if ((bits >> i) & 1) {
process.stdout.write(i + ' ');
}
}
console.log();
}
let bits = 0;
bits |= (1 << 3);
bits |= (1 << 5);
bits |= (1 << 11);
bits |= (1 << 14);
printBinary(bits);
console.log('First set bit at index:', findFirstSetBit(bits));
console.log('All the set bits indexes:');
printSetBitIndexes(bits);
/*
run:
0100100000101000
First set bit at index: 3
All the set bits indexes:
3 5 11 14
*/