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