スポンサーリンク

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

スポンサーリンク