十六进制字符串表示列表需要进行异或

时间:2016-04-06 09:00:12

标签: python string hex xor

我需要对十六进制值列表进行异或,但它们是从文本文件中提取的,因此它们是字符串,如何将它们转换为十六进制值?

示例列表:

['02', '0E', '00', '12', 'D2', '00', '00', '00', '00', '00', '00', 
'00', '00', '00', '00', 'CC', '02', '0C', '00', '10', '03', '00', 
'00', '00', '00', '00', '00', '00', '00', '1D', '02', '0A', '00', 
'04', '7E', 'F3', '34', '00', '00', '00', '00', 'B5', '02', '0E', 
'00', '12', 'CF', '00', '00', '00', '00', '00', '00', '00', '00',
'00', '00', 'D1', '02', '0E', '00', '12', 'CC', '00', '00', '00',
'00',  '00', '00', '00', '00', '00', '00', 'D2', '02', '0A', '00',
'04', '7F', 'F3', '34', '00', '00', '00', '00', 'B4', '02', '0A', 
'02', '0E', '00', '12', 'CF', '00', '00', '00', '00', '00']

1 个答案:

答案 0 :(得分:3)

使用内置函数int()

>> print(int('0e', 16))
14

第二个参数告诉int()期望以十六进制表示的数字,即基数为16。

请注意,没有“十六进制值”这样的东西;十六进制只是打印数字时使用的符号。 140xe的号码相同。

您当然可以使用列表解析来转换整个列表:

list2 = [int(x, 16) for x in list1]

假设原始字符串列表为list1

如果要以十六进制格式打印数字,请使用hex(),另一个内置:

>>> print(hex(int('e', 16)))
0xe