在Python中生成十六进制字节列表

时间:2011-09-14 19:45:44

标签: python hex byte ascii

我想生成所有256个字节组合的十六进制值列表。

基本上,我想要例如'A'=> '\ X41'。我只找到了能够转换'A'=>的模块。 '41',这不是我想要的。

我如何解决这个问题?有没有人知道一个合适的模块或算法(因为我想避免硬编码256个十六进制值......)?

5 个答案:

答案 0 :(得分:1)

>>> hex(ord('A'))
'0x41'

这是你想要的那种吗?

也许是这样的?

for o in range(128):
    print chr(o), hex(o)

或者

import string
for c in string.printable:
    print c, hex(ord(c))

答案 1 :(得分:1)

ord('A')将ASCII值作为整数返回(在'A'的情况下为65)。你可以想到你想要的任何基数的整数。 hex(ord('A'))为您提供了一个很好的字符串(在这种情况下为“0x41”),print "%x" % ord('A')也是如此。

答案 2 :(得分:0)

要将每个ASCII大写和小写字母的数值作为列表获取:

from string import ascii_letters
[ord(c) for c in ascii_letters]

答案 3 :(得分:0)

所以,你找到了为一个char做的方法,让我们在循环或列表理解中为它们做所有。 [(chr(x), '%x' % x) for x in range(256)]

这将创建一个列表(char,字符串,其值为十六进制)。 如果你想以其他方式显示值,你可以使用格式字符串,如

>>> 'x%02x' % ord('\r')
'x0d'

答案 4 :(得分:0)

您是否尝试将b'\x00'一直打印到b'\xff'?如果是这样,那么我的假设是最佳答案应该包含256

的范围
for o in range(256):
    print(hex(o))