题目描述
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?
分析1:
分析:
题目要求将一个整数的二进制翻转,如0x00000001 翻转成0x10000000。这个与10进的翻转类似。
将32位的无符号整数n右移32次,每次移动取出最低位,赋值给另一个变量result, 对应于n的右移,result对应地左移32次。(result需要先右移,再将n的最低位赋值给result,否则当输入n=2147483648时,会溢出)
实现(python)
def reverseBits(value):
print(bin(value))
result = 0