颠倒给定的 32 位无符号整数的二进制位。
简单难度。获取对应的位的值,然后左移实现反转,再与之前的数相加即可。
public int reverseBits(int n) {
int num = 0;
for (int i = 0; i <= 31; i++) {
//依次获取对应的位的值,然后左移实现反转,再与之前的数相加即可
num += (1 & n >> i) << (31 - i);
}
return num;
}
颠倒给定的 32 位无符号整数的二进制位。
简单难度。获取对应的位的值,然后左移实现反转,再与之前的数相加即可。
public int reverseBits(int n) {
int num = 0;
for (int i = 0; i <= 31; i++) {
//依次获取对应的位的值,然后左移实现反转,再与之前的数相加即可
num += (1 & n >> i) << (31 - i);
}
return num;
}