这个问题涉及leetcodequestion对32位无符号整数的位进行反转
我尝试了以下代码:
class Solution:
# @param n, an integer
# @return an integer
def reverseBits(self, n):
result = 0
BITMASK = 1
for i in range(32):
temp = n & BITMASK
result = result | temp
n = n >> 1
result = result << 1
return result
我尝试的策略是将数字的最后一位按位加上1,然后按位或按结果加上它。然后,数字右移1以删除最后一位,结果左移为下一位结果腾出空间。代码没有生成正确的结果。有人能帮我理解如何修复这个代码吗?谢谢
试试这个
最重要的是,当你的代码运行了32次之后,最后它再次改变了产生错误的结果,我们需要运行代码31次,并在and和OR的最后一步将其保持在循环之外
相关问题 更多 >
编程相关推荐