我們先看一道題:
假設n為整數,那麼表達式 n&1== n%2 的值為____
n = -10
n & 1 == n % 2
------------------------------------
Out[28]: True
n = -9
n & 1 == n % 2
------------------------------------
Out[30]: True
n%2
使用整數取餘,傳回的結果為0或者1
&是按位與運算符, 假如n=4轉換二進制為
0000 1010
,1的二進制為
0000 0001
,傳回的結果也是0或者1
10 = 0000 0100
& 1 = 0000 0001
------------------
0000 0000
11 = 0000 1011 (不整除 2) 28 = 0001 1100 (整除 2)
& 1 = 0000 0001 & 1 = 0000 0001
---------------- ----------------
0000 0001 0000 0000
意思就是把
n
轉換成二進制,然後看
n二進制
的最後一位,如果最後一位為1的話,結果就是1,如果最後一位是0的話,那就是0。 & 相當于AND。
因為2的倍數的二進制最後一位都是0,是以n&1表達式跟n%2結果是一樣的
n&1與n%2都能判斷n是為奇數還是偶數,是以0 == 0 = True,1 == 1 = True