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