菜鳥初學python中,遇到一項任務掙扎數天有點頭緒、有點方向、知道問題但沒有方法,還請版上大大指點迷津,先感激各位:
目的: 例如一檔案txt內容如下,解成二進位後顯示於黑白屏幕
str='0x8080808000800000,!'
讓它去掉前兩碼 [2:] 之後兩兩一組 並轉成二進位,如下圖範例
,即可在key: !時只讀取1 如圖,讓螢幕顯示 !
目前想法:
卡關於
以下是 python 16進位 轉 2進位 的範例供參考
# 0x1a --> 0b00011010
my_hexdata = "1a"
scale = 16 ## equals to hexadecimal
num_of_bits = 8
bin(int(my_hexdata, scale))[2:].zfill(num_of_bits)
我看不懂你的題目
12, I
A, 6S
, 78 就算了
四個轉出來都是相同 1000 0000
看不懂題目+1
感謝回復,不好意思,本想問個大概求個方向自己再多琢磨,所以附上的圖數字是個大概,但發現我還是不會運用且我想錯了,還請您幫我看看...實際情況是:
一txt 檔內容為
此為連結
https://docs.google.com/document/d/17-hB8tSBx4L7-e_8sZod0j2Y0hIaWdx9D_g9h1hgH0k/edit?usp=sharing
左邊為十六進位碼,當轉為二進位並8*8排序`讀取1後即可出現 右邊的 key 值 (如一開始問題附上的圖 顯出驚嘆號)
感謝海綿寶寶大神的回應,讓我看到如何轉換的重點,原本我是想如下圖
開檔案讀取建起list 但發現它會無限讀取!
之後我又卡了該如何建起lsit後讀左邊碼又解成二進位然後讓右邊當key,不確是否建成 dictionary?!
然後又卡在
list('x40407C42625C0000') 得個別分開成 ['x','4','0','4'....],那該如何才能兩兩一組如 ['x4','04','07'...]轉二進位,又或是個別轉二進位後兩兩成一組
n=101
#For spacing between the each column, based on the integer limit given.
spacing = len(bin(n)[2:])
print ("Decimal".rjust(spacing, ' ')+"Octal".rjust(spacing+1, ' ')+"HexaDeci".rjust(spacing+2, ' ')+"Binary".rjust(spacing, ' '))
for i in range(1,n+1):
print (str(i).rjust(spacing, ' '),str(oct(i)[1:]).replace('o','').rjust(spacing, ' '),str(hex(i)[2:].upper()).rjust(spacing, ' '),str(bin(i)[2:]).rjust(spacing, '0') )
Decimal Octal HexaDeci Binary
1 1 1 0000001
2 2 2 0000010
3 3 3 0000011
4 4 4 0000100
5 5 5 0000101
6 6 6 0000110
7 7 7 0000111
8 10 8 0001000
9 11 9 0001001
10 12 A 0001010
11 13 B 0001011
12 14 C 0001100
13 15 D 0001101
14 16 E 0001110
15 17 F 0001111
16 20 10 0010000
......
99 143 63 1100011
100 144 64 1100100
101 145 65 1100101