我寫了一個代碼嘗試並將4位二進制數轉換爲十六進制數。唯一的一點是,當我輸入一個以'1'開頭的值時,就會出現轉換,而如果我輸入一個以'0'開頭的值,它就不起作用。任何幫助?二進制到十六進制轉換器
print ("""Here's how the program will work. You need to get your binary number ready.
if it is 8 bit, split it into four, because thats how hexadecimal works. Make sure all your conversions
are slip into '4' bits like this:
01001101 will turn into:
0100 ,and then 1101""")
time.sleep(6)
print ("""So, for example, the program will ask you for your binary number. Like this:
Enter your binary number here:
Then you put in your number, like this:
Enter your binary number here: 0100
Lastly, the program will give you your hexadecimal number, then ask you if you would
like to do another conversion in this area, or end program.""")
time.sleep(6)
HEXADECIMAL = int(input("Please enter your binary number here: "))
if HEXADECIMAL == 0000:
print ("Your hexadecimal value is 0")
if HEXADECIMAL == 0001:
print ("Your hexadecimal value is 1")
if HEXADECIMAL == 0010:
print ("Your hexadecimal value is 2")
if HEXADECIMAL == 0011:
print ("Your hexadecimal value is 3")
if HEXADECIMAL == 0100:
print ("Your hexadecimal value is 4")
if HEXADECIMAL == 0101:
print ("Your hexadecimal value is 5")
if HEXADECIMAL == 0110:
print ("Your hexadecimal value is 6")
if HEXADECIMAL == 0111:
print ("Your hexadecimal value is 7")
if HEXADECIMAL == 1000:
print ("Your hexadecimal value is 8")
if HEXADECIMAL == 1001:
print ("Your hexadecimal value is 9")
if HEXADECIMAL == 1010:
print ("Your hexadecimal value is A")
if HEXADECIMAL == 1011:
print ("Your hexadecimal value is B")
if HEXADECIMAL == 1100:
print ("Your hexadecimal value is C")
if HEXADECIMAL == 1101:
print ("Your hexadecimal value is D")
if HEXADECIMAL == 1110:
print ("Your hexadecimal value is E")
if HEXADECIMAL == 1111:
print ("Your hexadecimal value is F")
您可以嘗試運行此代碼並以0110開頭,但它不會轉換。任何幫助?
您正在將用戶輸入轉換爲「int」。 'int'不要以前導零開始。只需將用戶輸入保持爲字符串,並通過與字符串進行比較來執行測試。 – Efferalgan
首先,它是'BINARY',而不是'HEXADECIMAL'。 – skovorodkin
'int'強制轉換不能正常工作。把它保持爲一個字符串! – MMF