こんにちは!
皆さんは、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
まとめ
今回の記事では、以下の内容について紹介しました。
- 論理和「|」
- 論理積「&」
- 排他的論理和「^」
- ビット反転「~」
- ビットシフト「<<」「>>」
ビット演算は情報処理技術者試験でも勉強したね!
ビット演算を使うことが出てきてもいいように、簡単に使い方を覚えておきましょう!