恐怕要处理硬件,所以先验是固定的。
我有一个字节形式的位掩码,我需要根据每个位的值创建一个字符串列表,以便可以打印出哪些位在“ on”上。
我可以用一个枚举和一堆代码来做到这一点,但我想知道是否有一种更简单的方法可以忽略掉。
bitmap = 127
result_list = your_code_here(bitmap)
print(*result_list, sep = ", ")
仅在二进制FlagN
的那个位置上有1
时才打印bitmap
的预期输出。
Flag1, Flag2, Flag3,
答案 0 :(得分:1)
您可以为每个位创建一个对应值的列表/哈希表,然后根据该位是否被翻转来从该列表中获取并打印值:
flags = ['Booted',
'Enabled',
'Communicating',
...]
bitmask = int(input("Input the bitmask: "))
print([flag for (index, flag) in enumerate(flags) if (bitmask & 2**index)])
例如输入5
作为位掩码(即0b101
)将输出['Booted', 'Communicating']
。