如果其中一个是字符串,如何异或两个十六进制值?

问题描述 投票:2回答:1

下面是问题的片段

string = "test"
for index, character in enumerate(string):
     value = hex(ord(character)) ^ 0xababab

此代码返回一个错误,它不能对字符串和整数进行异或。那么我怎样才能让python将hex(ord(character))作为整数处理而不是字符串呢?

我尝试通过添加int(hex(ord(character)))将其转换为int,但是返回错误:int的int的文字无效

python python-3.x python-2.7 xor
1个回答
1
投票

只需使用ord,它就是int。

for c in  s:
    print(ord(c) ^ 0xababab)

如您所见,这些是等效的:

1 == 0x01 # True
© www.soinside.com 2019 - 2024. All rights reserved.