我不得不在Python中解析syslog消息的Facility和Severity。这些值随每条消息一起出现。事件的严重性为0-7,在整数的3个最低有效位中指定。从数字中评估这3位的最简单/最快的方法是什么?
我现在的代码只是进行3位右移,而不是将该数乘以8,并从原始数据中减去结果。
FAC = (int(PRI) >> 3)
SEV = PRI - (FAC * 8)
必须有一种不那么复杂的方法来做这件事 - 而不是消除这些比特,并减去。
(我是一名交易系统管理员,所以,我不知道很多基础知识 - 请光临我!)
答案 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)