我有一个类似于
我发现了一个看起来很不错的模块bitstrings。不幸的是,由于某些未知的原因,这些位从右边开始编号。
这很糟糕,因为如果我添加一些上部的位数,例如
我该如何正确地提取位字段,而不需要进行复杂的算术运算,例如:
理想情况下,我需要:
0x5423
的数字,我想要提取其中的4个值:a = 0x5 # 15 downto 12
b = 0x42 # 11 downto 3
c = 0x3 # 3 downto 2
d = 0x00 # 1 downto 0
我发现了一个看起来很不错的模块bitstrings。不幸的是,由于某些未知的原因,这些位从右边开始编号。
这很糟糕,因为如果我添加一些上部的位数,例如
0xA5423
,我的提取将不再起作用:field = bitstrings.BitArray('0x5423')
a = field[0:4].uint
b = field[4:12].uint
c = field[12:14].uint
d = field[14:16].uint
我该如何正确地提取位字段,而不需要进行复杂的算术运算,例如:
b = (a >> 4) & 0xFF
理想情况下,我需要:
b = field.range(11, 4)