如何使用相同的打印字符串将字符串转换为十六进制

how to convert a string into hex with the same printed string

如何将字符串 x='0x67c31080115dDfeBa0474B3893b2caB1d567438f' 转换为十六进制 x=0x67c31080115dDfeBa0474B3893b2caB1d567438f

我想使用相同的十六进制值但不是字符串格式

换句话说,我如何将 x 视为十六进制值而不是字符串类型(不带 ' ')

谢谢

您可以使用 ast.literal_eval:

import ast

x='0x67c31080115dDfeBa0474B3893b2caB1d567438f'

hex_val = hex(ast.literal_eval(x))
print(hex_val)

没有"hex value"这样的东西。 0x67c31080115dDfeBa0474B3893b2caB1d567438f 属于类型 int。您可以将字符串转换为 int 只需:

x = int(x, 16)

但是,如果您想将其打印为十六进制,请使用:

print(hex(x))

print("{:x}".format(x))

(第一个在字符串开头加“0x”,另一个不加)