Я написал функцию для вычисления контрольной суммы шестнадцатеричной строки. например, контрольная сумма 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