答案 0 :(得分:0)
正如该答案的作者所说:
幻数将表存储为位串,并带有
的数字(从末尾开始)n
- th 对应于n
表条目
这是一个非常简单的例子:
Entry Value Bit
----- ----- ---
0 True 1
1 False 0
2 False 0
3 True 1
b # needed to indicate
0 # 'binary number'
此查找表的“幻数”,从底部读取,是:
>>> 0b1001 # (1 * 8) + (0 * 4) + (0 * 2) + (1 * 1)
9
或者,旋转它:
3 2 1 0 | Entry
True False False True | Value
0 b 1 0 0 1 | Bit # -> 0b1001
在提取输出方面,right-shift binary operator x >> y
将x
中的所有位移到y
个位置,截断最后y
位:< / p>
>>> for x in range(4):
print(x, '0b{:04b}'.format(9>>x))
0 0b1001
1 0b0100
2 0b0010
3 0b0001
并且bitwise AND & 1
会告诉您最后一位的值。取消结果:
>>> for x in range(4):
print(x, 9>>x&1)
0 1
1 0
2 0
3 1
另一个例子:
Entry Value Bit
----- ----- ---
0 True 1
1 False 0
2 True 1
3 False 0
b # needed to indicate
0 # 'binary number'
此查找表的“幻数”,从底部读取,是:
>>> 0b0101 # (0 * 8) + (1 * 4) + (0 * 2) + (1 * 1)
5
或者,旋转它:
3 2 1 0 | Entry
False True False True | Value
0 b 0 1 0 1 | Bit # -> 0b0101