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)