У меня есть 64-битное число, состоящее из различных битовых полей, и я пишу простую утилиту Python для разбора номера. Проблема, с которой я сталкиваюсь, состоит в том, что младшие 32 бита состоят из одного поля, и использование некоторой комбинации сдвигов битов или маскирования битов не дает только 32 бита.
big_num = 0xFFFFFFFFFFFFFFFF
some_field = (big_num & 0x00FFFF0000000000) # works as expected
field_i_need = big_num & 0x00000000FFFFFFFF # doesn't work
В результате получается, что field_i_need
равно big_num
, а не младшим 32 битам.
Я что-то упустил здесь?
Спасибо!
1012 * Матфей *