Java中為什麼Interger.MAX_VALUE加一就變成負數了?
作者:由 單推輝夜月 發表于 體育時間:2019-11-14
有範圍啊,兄弟
因為過了12點就是第二天了。
建議你補習一下二進位制補碼運算。
32位的int型正數用原碼儲存的,負數是用補碼儲存的,不懂的名詞請自行百度
8086微機原理怎麼・_・?學的
這不是第一章的內容嗎。
最底層因該是計算機CPU加法器(暫存器構成)的補碼運算。最前面的一位本來是2進位制的0表示正數,你非要去再加一個單位,最高位前面的符號位,進位成了2進位制的1,1表示補碼的負號。
Integer範圍是-2^32~2^32-1
轉換成二進位制第一個剛好高位為1
第二個高位為0剩下全部是1
上一篇:怎麼快速在大城市裡生活下去?
下一篇:電子的自旋現象是如何被發現的?