十进制数字和二进制数字的对应关系如下:
256 128 64 32 16 8 4 2 1
0 0 0 0 0 0 1 1 1 (7)
我们可以看到,除了最后一位可能出现奇数,其他位置都是2的倍数,不可能出现奇数,所以我们可以通过对数字7进行与运算(&),获取最后一位,来判断是否为奇数或偶数。即:7 & 1
0 0 0 0 0 0 1 1 1 (7) 0 0 0 0 0 1 1 0 (6)
& 0 0 0 0 0 0 0 0 1 (1) & 0 0 0 0 0 0 0 1 (1)
0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0
如果得到的数字为1,即为奇数,如果为0,则为偶数。
# evenodd.py # 通过最低位判断数字是偶数还是奇数 odd, even = [], [] for i in range(100): if (i & 1): odd.append(i) else: even.append(i) print("odd[]:", odd) print("even[]:", even);