在学习python的时候,发现使用位算符 & 可以判断一个数的奇偶性,如下代码,对其原理进行了探究说明
num=3
if num & 1:
print('奇数')
else:
print('偶数')
首先我们来看一下位运算符 & 的运算规则
于是我们就知道了,原来在执行 num & 1
语句时,num=3是用其二进制形式 11 参与运算的。由运算规则”比较对应位“,可知是使用了 11 的最低位1,与后面的1进行了&运算。
我们知道二进制数 1111111… 每一位的位权分别是 1,2,4,8…
除最低位外,其他位的位权都为2的倍数,由此可见奇数二进制最低位一定是1,偶数二进制最低位一定是0
于是我们结合与运算的规则 1&1=1 —> “奇数” 0&1=0 —> “偶数”