我想用二進制補碼錶示表示一個負整數。使用標準的Python位代表事業不會有什麼幫助:以二進制補碼錶示格式負整數
>>> bin(-5)
'-0b101'
>>> format(-5, 'b')
'-101'
-5
在補被表示爲1011
。我該怎麼做呢?
我想用二進制補碼錶示表示一個負整數。使用標準的Python位代表事業不會有什麼幫助:以二進制補碼錶示格式負整數
>>> bin(-5)
'-0b101'
>>> format(-5, 'b')
'-101'
-5
在補被表示爲1011
。我該怎麼做呢?
Python的整數已經使用補,而是因爲他們有任意精度,負數的二進制表示將有1秒的無限串在一開始,就像正數有0的無限字符串。由於這顯然不能顯示,所以用一個負號表示。
如果你想要一個特定寬度的二進制表示,你可以使用模數。
>>> bin(-5)
'-0b101'
>>> bin(-5 % (1<<32))
'0b11111111111111111111111111111011'
http://stackoverflow.com/questions/12946116/twos-complement-binary-in-python – Dmitry 2013-04-27 18:35:00