#include <iostream>
// Function to find the position of the first set bit
int findFirstSetBitPosition(int num) {
// Edge case: If the number is 0, there are no set bits
if (num == 0) {
return 0; // Return 0 to indicate no set bit
}
int position = 0; // Position starts from 0 (LSB)
while ((num & 1) == 0) { // Check if the least significant bit is 0
num >>= 1; // Right shift the number by 1
position++; // Increment the position
}
return position;
}
int main() {
int num = 4224; // 0001 0000 1000 0000
// Find and display the position of the first set bit
int position = findFirstSetBitPosition(num);
if (position == 0) {
std::cout << "The number has no set bits (it's 0)." << std::endl;
} else {
std::cout << "The position of the first set bit is: " << position << std::endl;
}
}
/*
run:
The position of the first set bit is: 7
7
*/