преобразование десятичного числа в шестнадцатеричное десятичное, а затем в байты в python

Я пытаюсь преобразовать десятичное число в шестнадцатеричное десятичное, а затем в байты.

например, если я хочу преобразовать десятичное число 5 в байты. я использую

def decimal_to_hexadecimal(dec): 
    decimal = int(dec) 
    return hex(decimal)

id = decimal_to_hexadecimal(5)

это дает шестнадцатеричное представление 5, т.е. 0x5

Теперь я конвертирую его в байты, используя

id_bytes = bytes([0x5])

Это отлично работает, но мне приходится вручную вводить шестнадцатеричное десятичное число. поэтому, когда я попробую это

equipmentID = int(equipmentID)
equipmentID_hex = hex(equipmentID)
equipmentID = bytes(equipmentID_hex)

Это дает ошибку

TypeError: string argument without an encoding

Может кто-то помочь мне с этим.

Спасибо


person cvg    schedule 19.10.2019    source источник


Ответы (1)


В функции вы не конвертируете шестнадцатеричные данные в byes. Если вам нужно преобразовать в байты, вам нужно использовать технику кодирования.

 equipmentID = bytes(equipmentID_hex, 'utf-8')
person Prudhvi    schedule 19.10.2019