#include <iostream>
#include <bitset>
void print_bits(unsigned int n) {
std::bitset<8> bits(n);
std::cout << bits << '\n';
}
int setRightmostUnsetBit(int n) {
if ((n & (n + 1)) == 0)
return n;
return n | (n + 1);
}
int main() {
int n = 25;
print_bits(n);
print_bits(setRightmostUnsetBit(n));
return 0;
}
/*
run:
00011001
00011011
*/