当我尝试运行以下代码时,它将打印“ FALSE”而不是“ TRUE” 有人可以解释为什么代码返回false吗?
wheel = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
wlen = len(wheel) - 1
c = input("Type a word: ").upper()
key = int(input("Key: "))
encrypted = ''
for x in c:
f = wheel.find(x) + key
if x == " ":
encrypted = encrypted + " "
if f > wlen:
f1 = f - wlen - 1
encrypted = encrypted + wheel[f1]
if f < wlen:
encrypted = encrypted + wheel[f]
print(encrypted)
答案 0 :(得分:9)
-8可以通过以下方式表示(我将使用字节表示形式
8 = 00001000
~8 = 11110111
-8 = 11111000 (~8 + 1)
在二补数表示中的-8
等于tp ~8 + 1
所以-8
等于11111000
,而7
等于00000111
11111000
&
00000111
========
00000000
即二进制AND操作产生错误结果。
答案 1 :(得分:0)
7
用二进制表示为00000111
。 -8
以二进制形式表示为11111000
。按位与运算对每个位执行“与”运算:
00000111
&
11111000
=
00000000
因此,如果条件为假。