Python ビット演算

Python 論理積:AND、論理和:OR、排他的論理和:XOR

x = 13
 # 0b1101

y = 6
  # 0b0110

# 論理積:AND
result = x & y
print(result, ":", bin(result))
# 4 : 0b100

# 論理和:OR
result = x | y
print(result, ":", bin(result))
# 15 : 0b1111

# 排他的論理和:XOR
result = x ^ y
print(result, ":", bin(result))
# 11 : 0b1011

x = 13 # 0b1101
y = 6 # 0b0110

Python ビットシフト

x = 13 # 0b1101

# ビット左シフト
result = x << 1
print(result, ":", bin(result))
# 26 : 0b11010

# ビット右シフト
result = x >> 1
print(result, ":", bin(result))
# 6 : 0b110

Python ビット反転

x = 13 # 0b1101

result = ~x
print(result, ":", bin(result))
# -14 : -0b1110
# 正の値に置き換えると 0b0010 となります

二進数の正負変換は、二の補数変換を行います。

コメント