python字符串到十六进制代表长度值

时间:2013-05-31 12:18:52

标签: python

简单问题我失败了。有一个字符串,我需要找到长度的十六进制编码值。以下是正确的(和工作):

sample="MyTest1234"
print repr(chr(len(sample)))

输出是:     '\n'

然而,当然,只要我的“样本”是> 255:

sample="MyTest1234"*26
print repr(chr(len(sample)))

它失败了: ValueError: chr() arg not in range(256)

如果我想计算大于256的字符串的长度,它会是什么样子?

2 个答案:

答案 0 :(得分:4)

有一个内置函数可以将数字转换为十六进制,它被称为hex()。这是你的两个字符串作为例子:

>>> sample="MyTest1234"
>>> print hex(len(sample))
0xa
>>> sample="MyTest1234"*26
>>> print hex(len(sample))
0x104

如果您不想要0x前缀,则需要将其分开:

>>> print hex(len(sample))[2:]
a

答案 1 :(得分:3)

怎么样:

sample="MyTest1234"
print format(len(sample), 'x')
# a

sample="MyTest1234"*26
print format(len(sample), 'x')
# 104