python中的十六进制转换错误

时间:2012-04-18 16:14:02

标签: python hex

我需要使用长十六进制数进行计算,所以我想将其转换为整数,但首先,我尝试删除空格和EOL字符。但是当我尝试转换时,我得到一个错误:“int 16(基于16的int()的文字无效”。这是代码:

p = """670C354E 4ABC9804 F1746C08 CA18217C 32905E46 2E36CE3B
E39E772C 180E8603 9B2783A2 EC07A28F B5C55DF0 6F4C52C9
DE2BCBF6 95581718 3995497C EA956AE5 15D22618 98FA0510
15728E5A 8AAAC42D AD33170D 04507A33 A85521AB DF1CBA64
ECFB8504 58DBEF0A 8AEA7157 5D060C7D B3970F85 A6E1E4C7
ABF5AE8C DB0933D7 1E8C94E0 4A25619D CEE3D226 1AD2EE6B
F12FFA06 D98A0864 D8760273 3EC86A64 521F2B18 177B200C
BBE11757 7A615D6C 770988C0 BAD946E2 08E24FA0 74E5AB31""" 

pps = hex(int(p, 16))
print pps

3 个答案:

答案 0 :(得分:7)

我想你想要

pps = int(''.join(p.split()), 16)

答案 1 :(得分:3)

首先删除空格。例如,您可以使用re.sub

执行此操作
p = re.sub(r'\s', '', p)

查看在线工作:ideone

答案 2 :(得分:2)

pps = hex(int(p.translate(None,' \n'),16))