Python 如何将输入存储为十六进制数?

Python 如何将输入存储为十六进制数?,python,python-3.x,hex,Python,Python 3.x,Hex,我一直在开发一个python应用程序,它可以将十进制数转换为十六进制数,然后再反过来。我无法将用户输入存储为十六进制数。这对于我的程序的运行是相当重要的,因为我需要询问他们希望将哪个数字转换回十进制数字。我只需要将其存储为不同的数据类型,而不是字符串或整数,但仍然需要提示 到目前为止,我已经尝试过这种方法: num = int(hex(input("Which Hexadecimal number would you like to convert to decimal/denary? \n"

我一直在开发一个python应用程序,它可以将十进制数转换为十六进制数,然后再反过来。我无法将用户输入存储为十六进制数。这对于我的程序的运行是相当重要的,因为我需要询问他们希望将哪个数字转换回十进制数字。我只需要将其存储为不同的数据类型,而不是字符串或整数,但仍然需要提示

到目前为止,我已经尝试过这种方法:

num = int(hex(input("Which Hexadecimal number would you like to convert to decimal/denary?  \n")))
但它仍然认为十六进制数实际上是一个字符串。

hex()
将整数转换为十六进制表示形式,即字符串<代码>输入()返回一个字符串值

您只需要存储用户直接输入的值:

然后,您可以通过尝试使用
int()
将其转换为十进制数来验证它是否为十六进制数:


下面是我在提示输入十六进制时使用的方法

首先,接受它作为常规输入

hexValue1 = input("Input first hex value")
然后,将其转换为相应的整数,如下所示

hexValue1 = int(hexValue1, 16)
现在,您可以使用相应的整数执行任何数学函数,如果希望结果以十六进制值的形式返回,请确保以十六进制值的形式返回

print(hex(hexValue1))
或者以任何其他方式返回值。它将返回一个典型0xaa11格式的字符串。因此,您可能需要进一步转换它来使用它

例如,一个简单的程序获取两个十六进制值输入,对这两个值进行异或运算,并返回十六进制结果,如下所示:

hex1 = input("Hex 1 ")
hex1 = int(hex1, 16)
hex2 = input("Hex 2 ")
hex2 = int(hex2, 16)
xor = hex1 ^ hex2

print(hex(xor))

input()始终返回字符串,如果用户希望将用户十六进制输入转换为二进制。如
s=input('enter hex')
bin
。但这不起作用,因为输入返回的是
0xff'
,而不是
0xff
@Rakesh:如果要将十六进制数字转换为字节,请使用
binascii.unhexlify()
print(hex(hexValue1))
hex1 = input("Hex 1 ")
hex1 = int(hex1, 16)
hex2 = input("Hex 2 ")
hex2 = int(hex2, 16)
xor = hex1 ^ hex2

print(hex(xor))