簡體   English   中英

讀取Python中的最低有效位

[英]Reading least significant bits in Python

我不得不在Python中解析syslog消息的Facility和Severity。 這些值隨每條消息一起出現。 事件的嚴重性為0-7,在整數的3個最低有效位中指定。 從數字中評估這3位的最簡單/最快的方法是什么?

我現在的代碼只是進行3位右移,而不是將該數乘以8,並從原始數據中減去結果。

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

必須有一種不那么復雜的方法來做到這一點 - 而不是擦掉比特,然后減去。

SEV = PRI & 7
FAC = PRI >> 3

像那樣。

只需應用一下掩碼:

sev = int(pri) & 0x07

(0x07是00000111)

請嘗試以下方法

result = FAC & 0x7

提取最低有效位的常規方法是使用適當的掩碼進行按位AND(在本例中為7)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM