在編程和日常電腦應用中,有時我們需要將二進制,八進制或十六進制數轉換為十進制。 在此示例中,我們將為此編寫三個數字系統間數值轉換的函數:
bin_to_dec() - 將二進制數轉換為十進制, oct_to_dec() - 將八進制數轉換為十進制, hex_to_dec() - 將十六進制數轉換為十進制。
# Functions bin_to_dec, oct_to_dec, hex_to_dec
def bin_to_dec(b):
d = 0
for n in range(0,len(b)):
d += int(b[n])*(2**(len(b)-n-1))
return d
def oct_to_dec(o):
d = 0
for n in range(0,len(o)):
d += int(o[n])*(8**(len(o)-n-1))
return d
def hex_to_dec(h):
xdigit = {"0":0, "1":1, "2":2, "3":3, "4":4, "5":5, "6":6, "7":7, "8":8,
"9":9, "A":10, "B":11, "C":12, "D":13, "E":14, "F":15}
d = 0
for n in range(0,len(h)):
d += xdigit.get(h[n].upper())*(16**(len(h)-n-1))
return d
b = input("Enter a binary number: ")
print("Decimal representation of binary number %s is %d."
% (b,bin_to_dec(b)))
o = input("Enter an octal number: ")
print("Decimal representation of octal number %s is %d."
% (o,oct_to_dec(o)))
h = input("Enter a hexadecimal number: ")
print("Decimal representation of hexadecimal number %s is %d."
% (h,hex_to_dec(h)))
|
在此示例中,我們輸入二進制數 1111011,八進制數 173 和十六進制數 7b,結果如下 (都得到相同的十進制數 123)
Enter a binary number: 1111011
Decimal representation of binary number 1111011 is 123.
Enter an octal number: 173
Decimal representation of octal number 173 is 123.
Enter a hexadecimal number: 7b
Decimal representation of hexadecimal number 7b is 123.
|
|
|