题目:
Reverse bits of a given 32 bits unsigned integer.
For example, given input 43261596 (represented in binary as 00000010100101000001111010011100), return 964176192 (represented in binary as 00111001011110000010100101000000)
Follow up:
If this function is called many times, how would you optimize it?
思路:
不知道 Follow up 怎么处理。
思路即是 n取出最低位,然后向右移。result 向左移,然后加上n的最低位。
Code:
public int reverseBits(int n) {
int result=0, temp=0;
for(int i = 0; i<32;i++){
temp = n&1;
n >>= 1;
result = (result<<1) + temp;
}
return result;
}备注:
位移符号的优先级 比较低,不可以直接用:
result = result<<1 + temp;要用:
result = (result<<1) + temp;

本文介绍了一种算法,用于将给定的32位无符号整数的二进制位进行逆序处理,并提供了一个具体的实现示例。通过循环遍历32次,每次提取输入整数的最低位并将其添加到结果变量的最高位,从而完成逆序。

504

被折叠的 条评论
为什么被折叠?



