我一直在研究一个可以将十进制数转换为十六进制数的python应用程序然后反过来。我将用户输入存储为十六进制数字时遇到问题。这对我的程序运行非常重要,因为我需要询问他们想要将哪个数字转换回十进制数。我只需要将它存储为除字符串或整数之外的其他数据类型,但仍需要提示。
到目前为止,我尝试过这种方法:
num = int(hex(input("Which Hexadecimal number would you like to convert to decimal/denary? \n")))
但它仍然认为十六进制数实际上是一个字符串。
答案 0 :(得分:1)
hex()
将整数转换为十六进制表示,即字符串。 input()
会返回一个字符串值。
您只想存储用户直接输入的值:
num = input("Which Hexadecimal number would you like to convert to decimal/denary? \n"))
然后,您可以通过尝试使用int()
将其转换为小数来验证是是否为十六进制数:
try:
decimal = int(num, 16) # interpret the input as a base-16 number, a hexadecimal.
except ValueError:
print("You did not enter a hexadecimal number!")
答案 1 :(得分:0)
这是我提示输入十六进制时使用的方法。
首先,接受它作为常规输入
hexValue1 = input("Input first hex value")
然后,将其转换为相应的整数,如此
hexValue1 = int(hexValue1, 16)
现在你可以使用相应的整数执行你想要的任何数学函数,如果你想将结果作为十六进制值返回,请务必按原样返回
print(hex(hexValue1))
或者您想要返回值的其他任何方式。它将以典型的0xaa11格式返回一个字符串。因此,您可能需要进一步转换它以使用它。
例如,一个简单的程序来获取两个十六进制值输入并执行二者的XOR并返回十六进制结果将如下所示:
hex1 = input("Hex 1 ")
hex1 = int(hex1, 16)
hex2 = input("Hex 2 ")
hex2 = int(hex2, 16)
xor = hex1 ^ hex2
print(hex(xor))