下面的a和b(十六進制)表示二進制補碼帶符號的二進制數。 例如:Python中十六進制數的二進制補碼
a = 0x17c7cc6e
b = 0xc158a854
現在我想知道一個& B在底部的符號表示10對不起,我低水平程序員,新的Python;感到非常愚蠢的問這個問題。我不在乎額外的圖書館,但答案應該簡單而直接。背景:一個&b是從UDP數據包提取數據。我無法控制格式。所以請不要給我一個答案,假設我可以事先更改這些變體的格式。
我已經轉換一個& b代入本以下:
aBinary = bin(int(a, 16))[2:].zfill(32) => 00010111110001111100110001101110 => 398969966
bBinary = bin(int(b, 16))[2:].zfill(32) => 11000001010110001010100001010100 => -1051154348
我試圖做這樣的事情(不工作):
if aBinary[1:2] == 1:
aBinary = ~aBinary + int(1, 2)
什麼是正確的在Python中做到這一點?
謝謝!第一種方法效果很好,它是一個沒有庫+1的單線程。 – Nimjox 2014-10-29 23:02:51