Pythonでビット演算するサンプルコード
and演算、or演算、xor演算、ビットシフト、ビットマスクのサンプルコードになります。
サンプルコード
下記がサンプルコードになります。
演算後、bin()で2進数表示しています。
参考:Pythonで2進数、8進数、16進数に変換
$ cat sample.py
#!/usr/bin/env python3
# coding: UTF-8
num1 = 0b1111
num2 = 0b1010
print("and演算")
num = num1 & num2
print(bin(num))
print("\nor演算")
num = num1 | num2
print(bin(num))
print("\nxor演算")
num = num1 ^ num2
print(bin(num))
print("\nnot演算")
num = ~num2
print(bin(num))
print("\n左へビットシフト")
num = num2 << 1 print(bin(num)) print("\n右へビットシフト") num = num2 >> 1
print(bin(num))
print("\nビットマスク")
num = num2 & 0b11
print(bin(num))
下記が実行結果になります。
$ ./sample.py and演算 0b1010 or演算 0b1111 xor演算 0b101 not演算 -0b1011 左へビットシフト 0b10100 右へビットシフト 0b101 ビットマスク 0b10
&:and演算
&演算子でand演算ができます。
num = num1 & num2
|:or演算
&演算子でand演算ができます。
num = num1 | num2
^:xor演算
^演算子でxor演算ができます。
num = num1 ^ num2
~:not演算
~演算子でnot演算ができます。
num = ~num2
<<:左へビットシフト
<<演算子で左へビットシフトができます。
num = num2 << 1 #1桁左へビットシフト
>>:右へビットシフト
>>演算子で右へビットシフトができます。
num = num2 >> 1 #1桁右へビットシフト
ビットマスク
下記はマスク処理し、下位2bitを取得しています。
num = num2 & 0b11
