我正試圖解決this站點上的問題。除了無法正確地將位串轉換爲其32位有符號整數表示形式外,我的一切都正確。將bitstring轉換爲32位有符號整數會產生錯誤的結果
例如,我有這樣的比特串:我部分從學校請記住,第一位爲符號位:
block = '10101010001000101110101000101110'
我這個位串轉換爲32位有符號整數的自己的路。如果它是1,我們有負數,反之亦然。
我這樣做的時候,它給了我它只是將它轉換爲10進制以10爲底數的數字:即檢查後
int(block, 2) #yields 2854414894
我試圖排除的第一位,並轉換其餘31位串的長度,第一位來決定這是否是負數或不是:
int(block[1:32], 2) #yields 706931246
但正確答案是-1440552402
。我應該怎麼做這個bitstring得到這個整數?如果系統的字節順序是小端或大端,它是否相關?我的系統是小端。
到http://stackoverflow.com/questions/1375897/how-to-get-the-signed-integer-value-of-a-long-in-python類似 –