菜鳥初學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, IA, 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