Max*_*xim 6 python bit-manipulation
我想用二进制补码表示来表示一个负整数.使用标准的Python位表示实用程序并没有多大帮助:
>>> bin(-5)
'-0b101'
>>> format(-5, 'b')
'-101'
Run Code Online (Sandbox Code Playgroud)
-5二进制补码表示为1011.我该怎么做呢?
Ant*_*ony 14
Python的整数已经使用了两个补码,但由于它们具有任意精度,负数的二进制表示在开始时将具有无限的1s串,就像正数具有无限的0串一样.由于显然无法显示,因此用减号表示.
如果您想要特定宽度的二进制表示,您可以使用modulo.
>>> bin(-5)
'-0b101'
>>> bin(-5 % (1<<32))
'0b11111111111111111111111111111011'
Run Code Online (Sandbox Code Playgroud)