Функция для транскодирования данных, содержащих битовые поля

Необходимо реализовать функцию для транскодирования данных, содержащих битовые поля. В решении необходимо использовать побитовые операции. Неиспользуемые поля результата должны содержать нулевые биты. Сам пытался но ничего не вышло. Кто-то сможет помочь?

введите сюда описание ображения

Тесты:

>>> 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

Ответы (0 шт):