🖥 Реализовать функцию для транскодирования данных, содержащих битовые поля



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



Входные данные: Шестнадцатиричная строка.



Выходные данные: Десятичная строка.



Тесты должны получится такими:



main('0x9c7421314') = '40975081498'



main('0xa47c30bdf') = '25498361886'



main('0x10e55f488') = '44091072530'



main('0xcdaf1fffb') = '68684267543'




Решение



def transcode(h:str):

v = int(h, 16)

k1 = v & 0xf

k2 = (v >> 4) & 0x1ff

k4 = (v >> 21) & 0x1f

k5 = (v >> 26) & 0x3ff

d = k4 | (k5 << 13) | (k1 << 23)| (k2 << 27)

return str(d)



print(transcode('0x9c7421314'))

print(transcode('0xa47c30bdf'))

print(transcode('0x10e55f488'))

print(transcode('0xcdaf1fffb'))



*** Remote Interpreter Reinitialized ***

[Dbg]>>>

40975081498

25498361886

44091072530

68684267543




Пишите свое решение в комментариях👇



@python_job_interview