今天在使用Python的異或運算的時候,結果發現得出的結果和我預期不太一樣
>>> a = 255
>>> b = -1
>>> print a^b
-256
我預期的結果是a^b等于0,因為255=0xFF,-1=0xFF,
現在不知道該怎么運算才可以得到我預期的結果,
求大神指教
uj5u.com熱心網友回復:
In [3]: a = (-1 & 0xff)
In [4]: b = (255 & 0xff)
In [5]: a^b
Out[5]: 0
In [6]:
uj5u.com熱心網友回復:
255=0xFF,-1=0xFF,
255和-1以應的二進制數都是 0xFF 這符合邏輯么?
只能說8位無符號數255是和8位有符號數-1的二進制補碼相同
255的有符號數是 011111111擴展成32位有符號數是 00FF
-1 的有符號數是 111111111擴展成32位有符號數是 FFFF
uj5u.com熱心網友回復:
樓主,python整型變數長度不是32位或64位嗎?為什么只寫出8位?轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/100959.html
上一篇:機器學習
