#include <iostream>
#include <bitset>
void print_bits(unsigned int n) {
std::bitset<32> bits(n);
std::cout << bits << '\n';
}
unsigned int reverse_bits(unsigned int n) {
unsigned int total_bits = sizeof(n) * 8;
unsigned int reverse_n = 0;
for (int i = 0; i < total_bits; i++) {
if ((n & (1 << i)))
reverse_n |= 1 << ((total_bits - 1) - i);
}
return reverse_n;
}
int main() {
int n = 13;
print_bits(n);
n = reverse_bits(n);
print_bits(n);
return 0;
}
/*
run:
00000000000000000000000000001101
10110000000000000000000000000000
*/