競技プログラミングにおいて、ビット演算はよく使われるテクニックです。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に比べて遅いという点にも注意が必要です。