Есть несколько способов сделать это.Например, вы можете использовать что-то вроде этого для преобразования неподписанного в подписанное:
seq:
- id: three
type: s3be
types:
s3be:
seq:
- id: unsigned_value
type: b24
instances:
value:
value: '(unsigned_value & 0x800000 != 0) ? (~(unsigned_value & 0x7fffff)) : unsigned_value'
Обратите внимание, что это будет тип пользователя, поэтому чтобы получить значение целого числа, вам нужно будет использовать three.value
, а не только three
.