2024-09-27 09:31:28 发布
网友
我需要一些关于在Python中解包表示位的值的帮助/指导。我通过json对象进行解析,有一个字段表示使用位值描述问题的标志数
例如,值24意味着位3和4都被设置(8+16=24),因此它有msg4和msg5。我知道我需要使用逐位运算符,但我真的不知道如何将值解压为单独的位
根据我使用的API文档:
位0(1)-示例msg1
位1(2)-示例msg2
位2(4)-示例msg3
位3(8)-示例msg4
位4(16)-示例msg5
位5(32)-示例msg6
如果val是您的值:
val
if val & (1 << 0): # msg1 elif val & (1 << 1): # msg2 elif val & (1 << 2): # msg3 and so on
如果你发现二的显式幂比位移更清晰,你也可以写
if val & 1: # msg1 elif val & 2: # msg2 elif val & 4: # msg3 and so on
如果
val
是您的值:如果你发现二的显式幂比位移更清晰,你也可以写
相关问题 更多 >
编程相关推荐