读取Python中的最低有效位

时间:2011-01-27 21:33:50

标签: python bit-manipulation syslog

我不得不在Python中解析syslog消息的Facility和Severity。这些值随每条消息一起出现。事件的严重性为0-7,在整数的3个最低有效位中指定。从数字中评估这3位的最简单/最快的方法是什么?

我现在的代码只是进行3位右移,而不是将该数乘以8,并从原始数据中减去结果。

FAC = (int(PRI) >> 3)
SEV = PRI - (FAC * 8)

必须有一种不那么复杂的方法来做这件事 - 而不是消除这些比特,并减去。

(我是一名交易系统管理员,所以,我不知道很多基础知识 - 请光临我!)

4 个答案:

答案 0 :(得分:8)

SEV = PRI & 7
FAC = PRI >> 3

就像那样。

答案 1 :(得分:3)

只需应用一下掩码:

sev = int(pri) & 0x07

(0x07是00000111)

答案 2 :(得分:1)

尝试以下

result = FAC & 0x7

答案 3 :(得分:0)

提取最低有效位的常规方法是使用适当的掩码进行按位AND(在这种情况下为7)