# ビット列表示する
# data : バイナリデータ
# pattern: 表示フォーマット
def show_bit(data, pattern="08b"):
print(format(data, pattern))
# 位置を表すビットパターンを作成する
# index : 位置
# default: ビットシフトする初期値
def bit_pattern(index, default=0x01):
return default << index
# 指定した位置にビットが立っているか?
# data : バイナリデータ
# index: インデックス
def flag(data, index):
bit = bit_pattern(index)
return (data & bit) == bit
def show_flag(data, index):
print(flag(data, index))
data = 0xc5
show_bit(data)
print("")
for i in range(8):
show_bit(bit_pattern(i))
show_flag(data, i)
# 11000101
#
# 00000001
# True
# 00000010
# False
# 00000100
# True
# :
# :