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

0 投票
2 回答
21570 浏览
提问于 2025-04-17 20:16

我正在开发一个Python应用程序,可以把十进制数字转换成十六进制数字,然后再反过来做。我在存储用户输入的十六进制数字时遇到了一些麻烦。这对我的程序很重要,因为我需要询问用户想把哪个数字转换回十进制。我需要把它存储为一种不同于字符串或整数的数据类型,但仍然需要一个提示。

到目前为止,我尝试了这个方法:

num = int(hex(input("Which Hexadecimal number would you like to convert to decimal/denary?  \n")))

但是它仍然把十六进制数字当成了字符串。

2 个回答

0

这是我在处理十六进制输入时使用的方法。

首先,直接把它当作普通输入来接受。

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))
2

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!")

撰写回答