当numb中没有字母时,bytearray.fromhex不会转换

2024-06-17 09:18:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试将一个数字(任意大小,可能很长)转换为其相应的字节字符串。例如,输入数字1094795585(基数10),即0x41414141(基数16),应返回“\x41\x41\x41\x41”。

目前我有:

def number_to_bytes(number):
    hex_string = hex(number).rstrip("L").lstrip("0x")
    return bytearray.fromhex(hex_string.decode("hex"))

当我输入数字1094795585(0x41414141)时,得到错误“奇数长度字符串”。

当我输入数字1094795584(0x41414140)时,得到错误“在位置2的fromhex()arg中找到非十六进制数”。

这使我认为Python正在hex_string中添加某种不可见的字符。是这样吗?

如何才能实现正确的转换?


Tags: to字符串numberstring字节bytesdef错误