从python中的字节中提取LSB位

时间:2014-01-24 19:54:49

标签: python-3.x byte extraction lsb

我在变量'DATA'中有一个字节。我想从中提取LSB位并打印出来。 我是python的新手,我发现很多文章都有复杂的按位加法逻辑,所有这些都很难理解。 我正在寻找一个像字符串一样的简单逻辑,例如DATA [7:1] 请帮帮我...

3 个答案:

答案 0 :(得分:6)

您的“字节”是int吗?如果是这样,只需使用&按位AND(1)(或者,如果您想要更明确,则使用二进制文字0b1)以获得最低有效位。

>>> x = 14
>>> x & 1
0
>>> x = 15
>>> x & 1
1

你的“字节”是bytes对象吗?如果是这样,只需索引它并按位AND。

>>> y = bytes([14, 15])
>>> y[0] & 1
0
>>> y[1] & 1
1

答案 1 :(得分:2)

最简单,可能最快:

least_significant_bit_of_x = x & -x

您可以在此处找到更多技巧:https://www.informit.com/articles/article.aspx?p=1959565

尽管按位使用“黑魔法”的参考文献是Knuth的“计算机编程艺术,第1卷”。

答案 2 :(得分:0)

右移数字n,取最后一位和1

num >> n &1