我正在尝试为以下问题编写算法。
问题陈述。
您将获得一个32位无符号整数列表。您需要输出通过翻转其二进制表示中的位所得到的无符号整数列表(即,必须设置未设置的位,并取消设置已设置的位)。
代码如下:
问题陈述。
您将获得一个32位无符号整数列表。您需要输出通过翻转其二进制表示中的位所得到的无符号整数列表(即,必须设置未设置的位,并取消设置已设置的位)。
代码如下:
def bit_flip(a):
return ~a & 0xffffffff
t = raw_input("")
a = map(int, t.split())
map(lambda x: x ^ 0xffffffff, a)
for i in a:
print bit_flip(int(i))
输入是
3
2147483647
1
0
我得到的输出是4294967292
然而,输出应该是
**2147483648
4294967294
4294967295**
我不确定我的错误在哪里。输出结果与至少一个输出行非常接近,但并不相同。
^
,另一次是在bit_flip
中)。 - Cameron