close
Content

在這個問題中你被要求寫一個程式來做數字基底的轉換。給你一個10進位或16進位的數,請你把他轉換成16進位或10進位的數。16進位的數總是以0x當開頭,其他所有的數都被當成是10進位。輸入中不會有不合法的數。

Input

輸入含有多組測試資料。每組測試資料一列有一個不為負數的數,可能是一個10進位或16進位的數。請根據上述的敘訴判斷。這個數10進位的值一定小於 231 。 若輸入為負的10進位數字時代表輸入結束。請參考 Sample Input。

Output

對每組測試資料輸出一列。如果輸入的是10進位的數,請輸出其16進位的值。如果輸入是16進位的數,請輸出其10進位的值。 如同輸入一樣,輸出的16進位的數也請以 0x 開頭。請參考Sample Output。

Sample Input #1
4
7
44
0x80685
-1
Sample Output #1
0x4
0x7
0x2C
525957

python:

while True:
    try:
        t=input()
        if t[0]=='-':break
        if t[:2]=='0x':#輸入為16進位,要轉10進位
            print(int(t,16))
        else:
            v=hex(int(t,10)).upper()#出來的是0x2c c要轉大寫
            #print(v)
            w=v[0]+'x'+v[2:]
            print(w)
    except:
        break

 

arrow
arrow
    創作者介紹
    創作者 趴趴熊日常 的頭像
    趴趴熊日常

    資工趴趴熊的小天地

    趴趴熊日常 發表在 痞客邦 留言(0) 人氣()