Welcome 歡迎光臨! 愛上網路 - 原本退步是向前

16 進制轉成 2 進制

16 進制數值,並將其數值轉成 32-bit 的 2 進制碼輸出, 以最低有效位元為先。

輸入說明:

每行讀取 1 個 16 進制數值 m,其中 0x0≤m≤0xFFFFFFFF,總共需要讀取 n 筆 16 進制資料,其 範圍為 1≤n≤50,最後將以-1 為結束。

輸出說明 :

將 16 進制數值 m 轉成長度為 32-bit 的 2 進制碼輸出,以最低有效位元為先,不足請補零。 範例說明:

範例 1 輸入

範例 1 輸出

0xAC

0x7001

0x10104012

-1

0011 0101 0000 0000 0000 0000 0000 0000 1000 0000 0000 1110 0000 0000 0000 0000 0100 1000 0000 0010 0000 1000 0000 1000

範例 2 輸入

範例 2 輸出

0x55

0xFFFFFF00

-1

1010 1010 0000 0000 0000 0000 0000 0000 0000 0000 1111 1111 1111 1111 1111 1111

 

 

本題主要技巧是字典字串反轉

hexdict={'0':'0000','1':'1000','2':'0100','3':'1100','4':'0010','5':'1010','6':'0110','7':'1110','8':'0001','9':'1001','A':'0101','B':'1101','C':'0011','D':'1011','E':'0111','F':'1111'}

 

 

ws=['0xAC','0x7001','0x10104012']

for i in range(len(ws)):

    temp=ws[i][:-(len(ws[i])-1):-1]

    temp2=[]

    temp2.extend(temp)

   

    outstr=""

    for i in range(len(temp2)):

        outstr=outstr + hexdict[temp2[i]]+" "

   

    for i in range(8-len(temp2)):

        outstr=outstr + hexdict["0"]+" "

 

    print(outstr)

 

[ Python ] 瀏覽次數 : 43 更新日期 : 2024/07/07