Python: バイトから特定のビットを抽出するにはどうすればいいですか? 質問する

Python: バイトから特定のビットを抽出するにはどうすればいいですか? 質問する

というメッセージがあります。 を呼び出すことで、14 09 00 79 3d 00 23 27このメッセージから各バイトを抽出できます。たとえば、次のようになります。 このバイトから個々の 8 ビットを抽出するにはどうすればよいですか? たとえば、ビット 24 ~ 27 を 1 つのメッセージとして取得するにはどうすればよいですか? ビット 28 だけの場合はどうでしょうか?message[4]3d

ベストアンサー1

質問の2番目の部分に答えると、ビット演算を使用して特定のビット値を取得できます。

# getting your message as int
i = int("140900793d002327", 16)

# getting bit at position 28 (counting from 0 from right)
(i >> 28) & 1

# getting bits at position 24-27
bin((i >> 24) & 0b111)

おすすめ記事