—— 本文參照 Learn Java for Android Development (第三版)
其實我們都知道Java是使用二進制的形式來表示整形數(shù)字的,最左邊的二進制位表示符號位,剩下的就是實際的數(shù)字大小。當最左邊位為0的時候表示的是正數(shù),可以直接進行存儲,如果最左邊的是1的時候則是一個負數(shù),那么存儲的時候就存儲它的二進制補碼。補碼的計算方式如下:正數(shù)的補碼就是它本身,負數(shù)的補碼計算方式是:符號位不變,其他為1變0,0變1,然后最低位加1即得到負數(shù)的補碼。(這里不需要擔心加1以后影響到符號位導致負數(shù)變正數(shù)了,因為正常情況下不會影響到符號位,放個詳細點的解釋吧:http://www.zybang.com/question/fa5aed371bc93e8c5a742c04bb61b367.html)
二進制補碼這種形式可以讓負數(shù)跟正數(shù)同時保存在。比方說可以計算-1加1然后就可以得到結(jié)果0.下圖表示了正2和負2的二進制表示形式:
圖1.jpg
注意二進制表示形式的第一位是符號位。
上面說的是整形的表示方法,在我們的計算機里面除了整形還有好多浮點或者雙精度浮點數(shù),想知道浮點說的最大值和最小值是什么又怎么表示嗎,那可能要推薦一個比較高端的網(wǎng)址給你去翻閱翻閱了:https://en.wikipedia.org/wiki/IEEE_floating_point 從鏈接大概也看出來了是維基百科對IEEE的解釋吧,好吧,慢慢看看這個其實我也不怎么明白的標準吧,IEEE翻譯成中文叫:電氣和電子工程師協(xié)會 所以不難想象這標準應該就是他們搞出來的吧。
Page 41