Python 如何将输入存储为十六进制数?
我一直在开发一个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"
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))