颠倒给定的 32 位无符号整数的二进制位。
#include<stdio.h>
#include<stdint.h>
#include<math.h>
uint32_t reverseBits(uint32_t n) {
uint32_t m = 0;
for (int i = 0; i < 32; i++) {
m = m + (n % 2) * pow(2, 31 - i);
n /= 2;
}
return m;
}
int main() {
uint32_t n = 0b00000010100101000001111010011100;
uint32_t m = reverseBits(n);
printf("%d", m);
return 0;
}