下面的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