我想生成所有256个字节组合的十六进制值列表。
基本上,我想要例如'A'=> '\ X41'。我只找到了能够转换'A'=>的模块。 '41',这不是我想要的。
我如何解决这个问题?有没有人知道一个合适的模块或算法(因为我想避免硬编码256个十六进制值......)?
答案 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))