0

这个问题的最后一个答案表明二进制真值表可以表示为二进制数:

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答案提供的功能。为什么我们必须左移一位?

4

1 回答 1

1

你倒过来了。它是向左移动x点的二进制数 1。

这应该是有道理的。如果您想检查表中的第 4 个点,由 表示f,您必须检查f & 10000!=0

你是对的,移位是非常随意的,没有意义。

于 2015-06-16T21:22:22.223 回答