有人能告诉我为什么结果是4吗?应该改为打印3,因为代码在If部分中得到满足。
a = 15
if a&5 == 0:
print('3')
elif a% 5 == 0:
print('4')
else:
print('5')
amp;是按位AND,工作方式如下:
15&5
1111
& 0101
------
0101 != 0
您正在比较15的位和5的位,从而得出它们的共同点。
1111 & 101 => 101
所以结果是5,而不是0。
"&">运算符是位AND,因此在您的代码中它类似于:
1111 & 0101 = 0101
这意味着
15 and 5 = 5
因此,第一个条件不可能为真,您将在输出中得到4
,因为15/5
的提醒是0
。
如果你想检查LSB,那么你应该用1做"and"并检查结果,如果它是1,那么LSB是0,否则LSB是1