在Python中读取最低有效位
我需要在Python中解析系统日志消息中的设施和严重性。这些值以一个整数的形式出现在每条消息中。事件的严重性范围是0到7,这个信息存储在这个整数的最后3位上。请问,有什么简单快捷的方法来提取这3位吗?
我现在的代码是先将这个整数右移3位,然后把得到的数字乘以8,再从原来的数字中减去这个结果。
FAC = (int(PRI) >> 3)
SEV = PRI - (FAC * 8)
我觉得应该有更简单的方法来做到这一点,而不是先把位数消掉再进行减法。
4 个回答
1
试试下面这个
result = FAC & 0x7
4
只需要使用一个位掩码:
sev = int(pri) & 0x07
(0x07表示二进制的00000111)
9
SEV = PRI & 7
FAC = PRI >> 3
就像这样。