我有一串号码:
a = [2, 2, 30, 1, 30, 6, 3, 30, 0, 9, 4, 30, 1, 30, 1, 29]
我试图将列表从整数转换为相同数字的ascii字符,然后再将它们转换为十六进制。当有一些数字超过一位时,我在弄清楚如何转换整个列表时遇到了麻烦。
我试过:
a = [2, 2, 30, 1, 30, 6, 3, 30, 0, 9, 4, 30, 1, 30, 1, 29]
b = f'0x{ord(str(a)):x}'
c = int(b, base=16)
会抛出错误:第一个月
它的变体:
a = [2, 2, 30, 1, 30, 6, 3, 30, 0, 9, 4, 30, 1, 30, 1, 29]
separated_digits = [int(digit) for number in a for digit in str(number)]
ascii_chars_hexed = [f'0x{ord(str(digit)):x}' for digit in separated_digits]
如果我将中的数字拆分为单个数字,则可以使用,但我需要双位数字的字符输出基于2位数字,而不是每个数字单独输出。
我希望它输出:
[0x32, 0x32, 0x1e, 0x31, 0x1e, 0x36, 0x33, 0x1e, 0x30, 0x39, 0x34, 0x1e, 0x31, 0x1e, 0x31, 0x1d]`
有什么想法吗?
1条答案
按热度按时间but5z9lq1#
这是一种奇怪的数据格式,但下面的代码可以满足您的需要。将一位数转换为字符串并获取它们的ASCII值。例如,将字符串中"2"的ASCII值存储为整数50会更有意义。
输出: