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

List of hex string representations need to be XOR-ed

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

示例列表:

['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']

使用内置函数int():

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

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

请注意,没有 "hex value" 这样的东西;十六进制只是打印数字时使用的一种表示法。 140xe 是同一个数字。

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

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

假设原始字符串列表是 list1.

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

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