華爲筆試題-進制轉換

寫出一個程序,接受一個十六進制的數值字符串,輸出該數值的十進制字符串。(多組同時輸入 )

輸入描述:

輸入一個十六進制的數值字符串。

輸出描述:

輸出該數值的十進制字符串。

輸入例子1:

0xA

輸出例子1:

10

思路:將字符串轉化爲列表,反轉後捨去最後兩個(0,X),然後逐位乘以pow(16,i)

import sys
for line in sys.stdin:
    s2=line.strip()
    d={'A':10,'B':11,'C':12,'D':13,'E':14,'F':15}
    s=s2[::-1]
    s=list(s)
    s=s[:-2]
    #s.pop()  #不可以用s=s.pop(),因爲s.pop()有返回值,是彈出的元素
    #s.pop()
    length=len(s)
    res=0
    for i in range(length):
    	if s[i] in d:
    		s[i]=d[s[i]]
    	s[i]=int(s[i])
    	res=res+s[i]*pow(16,i)
    print(str(res))

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章