преобразование десятичного числа в шестнадцатеричное десятичное, а затем в байты в Python - PullRequest
0 голосов
/ 19 октября 2019

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

например, если я хочу преобразовать десятичное число 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

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

Спасибо

1 Ответ

0 голосов
/ 19 октября 2019

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

 equipmentID = bytes(equipmentID_hex, 'utf-8')
...