我在变量“DATA”中有一个字节。我想从中提取 LSB 位并打印出来。我对 python 很陌生,我发现很多文章都有复杂的按位加法逻辑,而且所有这些都很难理解。我正在寻找一个简单的逻辑,就像我们对字符串所做的那样,例如 DATA[7:1] 请帮帮我......
问问题
26216 次
3 回答
16
你的“字节”是一个int
吗?如果是这样,只需按位 AND ( &
) 与1
(或者,如果你想更明确,二进制文字0b1
)来获得最低有效位。
>>> x = 14
>>> x & 1
0
>>> x = 15
>>> x & 1
1
你的“字节”是一个bytes
对象吗?如果是这样,只需对其进行索引并按位与。
>>> y = bytes([14, 15])
>>> y[0] & 1
0
>>> y[1] & 1
1
于 2014-01-24T19:59:06.907 回答
6
最简单也可能最快的:
least_significant_bit_of_x = x & -x
您可以在这里找到更多技巧:https ://www.informit.com/articles/article.aspx?p=1959565
虽然按位“黑魔法”的首选参考是 Knuth 的“计算机编程艺术,第 1 卷”。
于 2020-03-22T00:02:09.880 回答
-1
右移数字 n 并取最后一位和 1
num >> n &1
于 2017-06-29T01:23:58.143 回答