2015-06-16 34 views
0

this question最後的答案表明,一個二進制真值表可表示爲二進制數:爲什麼在將真值表評估爲二進制數時進行移位?

0 0 0 | 1 
0 0 1 | 1 
0 1 0 | 0 
0 1 1 | 0 
1 0 0 | 1 
1 0 1 | 0 
1 1 0 | 1 
1 1 1 | 0 

可以通過01010011表示。

在表中的條目也可以使用這個號碼進行評價。

def evaluate(f, x): 
    return (f & (1<<x)) != 0 

f = int('01010011',2) 

>>> evaluate(f,int('100',2)) 
True 
>>> evaluate(f,int('101',2)) 
False 

我的問題是關於evaluate函數提供的答案。爲什麼我們必須左移一位?

回答

1

你擁有它倒退。它是由x點向左移位的二進制數字1。

,這應該是有意義的。如果你想檢查表中的第四個點,用f代表,你必須檢查f & 10000!=0

你說的沒錯,一個轉移是非常武斷和沒有意義。

相關問題