競技プログラミングにおいて、ビット演算はよく使われるテクニックです。Pythonでもビット演算を行うことができます。以下は、Pythonでビット演算を使用する方法の例です。
ビット演算の種類
Pythonでは、以下のビット演算子を使用することができます。
&: ビット毎の AND 演算|: ビット毎の OR 演算^: ビット毎の XOR 演算~: ビット毎の NOT 演算<<: 左シフト演算>>: 右シフト演算
ビット演算を使用した例
以下は、Pythonでビット演算を使用した例です。
# ビット毎の AND 演算
a = 60 # 0011 1100
b = 13 # 0000 1101
c = a & b # 0000 1100
print(c)
# ビット毎の OR 演算
a = 60 # 0011 1100
b = 13 # 0000 1101
c = a | b # 0011 1101
print(c)
# ビット毎の XOR 演算
a = 60 # 0011 1100
b = 13 # 0000 1101
c = a ^ b # 0011 0001
print(c)
# ビット毎の NOT 演算
a = 60 # 0011 1100
c = ~a # 1100 0011
print(c)
# 左シフト演算
a = 60 # 0011 1100
c = a << 2 # 1111 0000
print(c)
# 右シフト演算
a = 60 # 0011 1100
c = a >> 2 # 0000 1111
print(c)
注意点
Pythonでは整数が自動的に大きなサイズに変換されるため、ビット演算を行う際にオーバーフローに注意する必要があります。また、Pythonにおけるビット演算の実行速度は、CやJavaに比べて遅いという点にも注意が必要です。