Преобразование шестнадцатеричной строки в шестнадцатеричную строку с заполнением \ x в python - PullRequest
0 голосов
/ 10 июля 2020

Я написал функцию для вычисления контрольной суммы шестнадцатеричной строки. например, контрольная сумма 01303030303030524c4d440240 равна 3534

from binascii import hexlify
def checksum_calc(packet):
    print(packet)
    checksum = 0
    for el in packet:
            print(el)
            checksum ^= ord(el)

    hex_cs = hex(checksum)
    ascii_checksum = hex_cs[2:]
    print(ascii_checksum)

    final_cs = hexlify(ascii_checksum.encode())
    return final_cs.decode()

Эта функция отлично работает, когда я передаю шестнадцатеричную строку \x заполненный формат, например checksum_calc("\x01\x30\x30\x30\x30\x30\x30\x52\x4c\x4d\x44\x02\x40")

Но мое требование передать String без заполнения \x, например print(checksum_calc("01303030303030524c4d440240"))

Итак, как мне преобразовать обычную строку без заполнения \x в \x заполненную строку в шестнадцатеричной строке

Пример строки ввода: 01303030303030524c4d440240

Пример Выходная строка: \x01\x30\x30\x30\x30\x30\x30\x52\x4c\x4d\x44\x02\x40

...