#include <stdio.h>
// Function to get the position of the highest set bit (0-based)
int getHighestBitPosition(unsigned int num) {
int pos = -1;
while (num) {
pos++;
num >>= 1;
}
return pos;
}
// Function to print bits from 0 to highest set bit
void printRelevantBits(unsigned int num) {
int highestBit = getHighestBitPosition(num);
for (int i = 0; i <= highestBit; i++) {
int bit = (num >> i) & 1;
printf("Bit %d: %d\n", i, bit);
}
}
int main() {
unsigned int value = 32; // Change this to any value you want
printRelevantBits(value);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgovLyBGdW5jdGlvbiB0byBnZXQgdGhlIHBvc2l0aW9uIG9mIHRoZSBoaWdoZXN0IHNldCBiaXQgKDAtYmFzZWQpCmludCBnZXRIaWdoZXN0Qml0UG9zaXRpb24odW5zaWduZWQgaW50IG51bSkgewogICAgaW50IHBvcyA9IC0xOwogICAgd2hpbGUgKG51bSkgewogICAgICAgIHBvcysrOwogICAgICAgIG51bSA+Pj0gMTsKICAgIH0KICAgIHJldHVybiBwb3M7Cn0KCi8vIEZ1bmN0aW9uIHRvIHByaW50IGJpdHMgZnJvbSAwIHRvIGhpZ2hlc3Qgc2V0IGJpdAp2b2lkIHByaW50UmVsZXZhbnRCaXRzKHVuc2lnbmVkIGludCBudW0pIHsKICAgIGludCBoaWdoZXN0Qml0ID0gZ2V0SGlnaGVzdEJpdFBvc2l0aW9uKG51bSk7CgogICAgZm9yIChpbnQgaSA9IDA7IGkgPD0gaGlnaGVzdEJpdDsgaSsrKSB7CiAgICAgICAgaW50IGJpdCA9IChudW0gPj4gaSkgJiAxOwogICAgICAgIHByaW50ZigiQml0ICVkOiAlZFxuIiwgaSwgYml0KTsKICAgIH0KfQoKaW50IG1haW4oKSB7CiAgICB1bnNpZ25lZCBpbnQgdmFsdWUgPSAzMjsgIC8vIENoYW5nZSB0aGlzIHRvIGFueSB2YWx1ZSB5b3Ugd2FudAogICAgcHJpbnRSZWxldmFudEJpdHModmFsdWUpOwogICAgcmV0dXJuIDA7Cn0K