Функция для транскодирования данных, содержащих битовые поля
Необходимо реализовать функцию для транскодирования данных, содержащих битовые поля. В решении необходимо использовать побитовые операции. Неиспользуемые поля результата должны содержать нулевые биты. Сам пытался но ничего не вышло. Кто-то сможет помочь?
Тесты:
>>> main('0x6d425d6')
80573824
>>> main('0x5a47c6e')
262871936
>>> main('0xfa8efe1')
230684736
>>> main('0x848d065')
173021504
Код:
def main(hex_string: str) -> int:
value = int(hex_string, 16)
result = 0
result |= ((value >> 14) & 0x3) << 26
result |= ((value >> 20) & 0xF) << 22
result |= ((value >> 23) & 0x1F) << 17
result |= (value & 0x3FF) << 0
return result
