簡體   English   中英

如何將輸入存儲為十六進制數字?

[英]How can I store input as a hexadecimal number?

我一直在研究python應用程序,該應用程序可以將十進制數字轉換為十六進制數字,然后進行相反的處理。 我在將用戶輸入存儲為十六進制時遇到麻煩。 這對於程序的正常運行至關重要,因為我需要詢問他們想將哪個數字轉換回十進制數字。 我只需要將其存儲為不同於字符串或整數的其他數據類型,但仍然需要提示。

到目前為止,我已經嘗試過這種方法:

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

但是它仍然認為十六進制數實際上是一個字符串。

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

這是提示輸入十六進制時使用的方法。

首先,只需接受它作為常規輸入

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM