У меня есть ряд как 0x5423
, где я хочу, чтобы извлечь 4 значения:Извлечение битового определенного междунар в Python
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)