如何在Python中实现字符串转十六进制及异或运算?
正确实现方法
你的问题出在对hex()函数的理解上:hex()是用来把整数转换成十六进制字符串的,而不是解析十六进制字符串为数值。要把十六进制格式的字符串转成可运算的数值,得用int()函数并指定进制参数。
步骤说明
- 使用
int(hex_str, 16)将十六进制字符串转为整数:int("1F", 16)→ 得到整数31int("1", 16)→ 得到整数1int("2", 16)→ 得到整数2
- 对转换后的整数直接用
^运算符执行异或运算 - 若需要将结果转回十六进制字符串,再调用
hex()
完整代码
# 原始十六进制字符串 num_str = "1F" nm_str = "1" nm1_str = "2" # 转换为整数 num = int(num_str, 16) nm = int(nm_str, 16) nm1 = int(nm1_str, 16) # 异或运算 xor_result = num ^ nm ^ nm1 # 输出结果 print(f"十进制结果: {xor_result}") print(f"十六进制结果: {hex(xor_result)}")
运行这段代码会输出:
十进制结果: 32 十六进制结果: 0x20
内容的提问来源于stack exchange,提问作者huntersang
相关产品推荐
相关产品推荐

