将一串ascii Hex值处理为数字十六进制值

时间:2014-08-08 09:37:42

标签: python-2.7

我仍然是python的新手,所以请原谅我,如果这是一个相当容易的问题,但我没有通过搜索找到任何明显的东西。

我有一串Ascii hex的形式:

7F 9D AA 3E F7 0E 9C 75 7C 37

我要做的是从表中提取一个数字(例如7F),然后将其转换为十六进制值,然后我可以对其执行数学运算。

我将如何做到这一点?

1 个答案:

答案 0 :(得分:0)

如果您只需要将十六进制值的字符串表示形式转换为非字符串版本,则可以使用binascii将字符串表示形式转换为其十六进制等效值:

import binascii
h = "7F 9D AA 3E F7 0E 9C 75 7C 37"
binascii.unhexlify(''.join(h.split()))

# >> '\x7f\x9d\xaa>\xf7\x0e\x9cu|7'

如果需要整数,请将字符串转换为列表(以便能够迭代它),然后使用int()将基数为16的十六进制数转换回整数:

hex_list = "7F 9D AA 3E F7 0E 9C 75 7C 37"

# Convert your string list to a list: e.g. ['7F', '9D', 'AA'...
hex_list = hex_list.split()

for hex in hex_list: 
    print int(hex, 16) #hex is base 16

要转换单个列表值,请在列表中指定其索引:

# Convert 7F back to an integer:
print int(hex_list[0], 16)

要将int转换回十六进制,只需传入hex()