【Python】Pythonで使えるビット演算子を把握しよう!

こんにちは!

皆さんは、Pythonでビット演算子を使おうと思ったことはありますか?

Python初心者
あんまりないかな汗

ビット演算子は、ビット単位で演算を行うための演算子です。

このビット演算子をまとめて把握しましょう。

今回の記事では、以下の内容について紹介します。

  • 論理和「|」
  • 論理積「&」
  • 排他的論理和「^」
  • ビット反転「~」
  • ビットシフト「<<」「>>」

ビット演算子の一覧

Pythonで使えるビット演算子は、以下の5つです。

ビット演算子 説明
| ビット単位の論理和
& ビット単位の論理積
^ ビット単位の排他的論理和
~ ビット反転
<< , >> ビット左シフト , ビット右シフト

論理和「|」

Pythonでビット単位の論理和の演算を行うには、「|」を使います。

a = 3
b = 4
print(bin(a), bin(b))

print(a | b)
print(bin(a | b))
0b11 0b100
7
0b111

3の4ビット2進数表記は0011、4の4ビット2進数表記は0100です。

これの論理和を取ると、0111なので7が出力されています。

論理積「&」

Pythonでビット単位の論理積の演算を行うには、「&」を使います。

a = 3
b = 4
print(bin(a), bin(b))

print(a & b)
print(bin(a & b))
0b11 0b100
0
0b0

3の4ビット2進数表記は0011、4の4ビット2進数表記は0100です。

これの論理積を取ると、0000なので0が出力されています。

排他的論理和「^」

Pythonでビット単位の排他的論理和の演算を行うには、「^」を使います。

a = 3
b = 4

print(bin(a), bin(b))
print(a ^ b)
print(bin(a ^ b))
0b11 0b100
7
0b111

3の4ビット2進数表記は0011、4の4ビット2進数表記は0100です。

これの排他的論理和を取ると、0000なので0が出力されています。

ビット反転「~」

Pythonでビット反転の演算を行うには、「~」を使います。

ビット反転では、「~a」は「-(a+1)」となる値を返します。

a = 3

print(bin(a))
print(~a)
print(bin(~a))
0b11
-4
-0b100

ビットシフト「<< , >>」

Pythonでビットシフトの演算を行うには、「<< , >>」を使います。

a = 3

print(bin(a))
print(a<<2, a>>2)
print(bin(a<<2), bin(a>>2))
0b11
12 0
0b1100 0b0

まとめ

今回の記事では、以下の内容について紹介しました。

  • 論理和「|」
  • 論理積「&」
  • 排他的論理和「^」
  • ビット反転「~」
  • ビットシフト「<<」「>>」
Python初心者
ビット演算は情報処理技術者試験でも勉強したね!

ビット演算を使うことが出てきてもいいように、簡単に使い方を覚えておきましょう!