Python 通过最低位判断数字是偶数还是奇数

  十进制数字和二进制数字的对应关系如下:

    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);

 

posted @ 2020-02-21 20:14  no樂on  阅读(430)  评论(0编辑  收藏  举报