Pythonはビット演算をサポートしています。ビット演算は、整数をそのバイナリ表現(つまり、0と1の列)に対して行う操作です。Pythonで使用できる主なビット演算子は以下の通りです。
- ビットAND(&):2つの数値の対応するビットが両方とも1の場合に1を返します。
- ビットOR(|):2つの数値の対応するビットのいずれかが1の場合に1を返します。
- ビットXOR(^):2つの数値の対応するビットが異なる場合に1を返します。
ビット演算は一部のビットだけを取り出すときなどによく使われます。例えば、ある整数の下位3ビットを取り出すには、その整数と0b111
(これは下位3ビットがすべて1で、それ以外のビットが0の整数です)とのビットANDを取ります。
n = 0b101110 # 46 in decimal
mask = 0b111 # 7 in decimal
lower_3_bits = n & mask
print(bin(lower_3_bits)) # Output: 0b110
このコードは、整数n
の下位3ビットを取り出し、それを二進数で表示します。
ビット演算は、特定のビットを設定、クリア、トグルするといった操作や、2つの数値のビットごとの比較など、多くの低レベルな操作に使用されます。これらの操作は、ハードウェア制御、エンコーディング/デコーディング、暗号化などのタスクで頻繁に見られます。
ビット演算の理解と適切な使用は、効率的なコードを書く上で重要なスキルです。Pythonのビット演算子を使いこなせば、コードのパフォーマンスを向上させ、メモリ使用量を削減することが可能になります。
以上がPythonとビット演算についての基本的な説明です。このトピックについてさらに詳しく学びたい場合は、Pythonの公式ドキュメンテーションや他の教育リソースを参照してください。