3

Pythonでsyslogメッセージの機能と重大度を解析する必要があります。これらの値は、単一の整数として各メッセージに付属しています。イベントの重大度は0〜7で、整数の最下位3ビットで指定されます。数値からこれらの3ビットを評価する最も簡単/最速の方法は何ですか?

私が今持っているコードは、その数に8を掛けて、元のコードから結果を差し引くよりも、3ビットの右シフトを実行します。

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

これを行うには、ビットを消去して減算するのではなく、それほど複雑でない方法が必要です。

4

4 に答える 4

9
SEV = PRI & 7
FAC = PRI >> 3

そのように。

于 2011-01-27T21:38:17.563 に答える
4

ビットマスクを適用するだけです。

sev = int(pri) & 0x07

(0x07は00000111です)

于 2011-01-27T21:39:00.953 に答える
1

次を試してください

result = FAC & 0x7
于 2011-01-27T21:37:58.703 に答える
0

最下位ビットを抽出する通常の方法は、適切なマスク(この場合は7)を使用してビット単位のANDを実行することです。

于 2011-01-27T21:38:25.837 に答える