Последний ответ на этот вопрос показывает, что двоичная таблица истинности может быть представлена в виде двоичного числа:
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
, предоставленной ответом. Почему мы должны сдвигать биты влево на единицу?