—— 本文参照 Learn Java for Android Development (第三版)
其实我们都知道Java是使用二进制的形式来表示整形数字的,最左边的二进制位表示符号位,剩下的就是实际的数字大小。当最左边位为0的时候表示的是正数,可以直接进行存储,如果最左边的是1的时候则是一个负数,那么存储的时候就存储它的二进制补码。补码的计算方式如下:正数的补码就是它本身,负数的补码计算方式是:符号位不变,其他为1变0,0变1,然后最低位加1即得到负数的补码。(这里不需要担心加1以后影响到符号位导致负数变正数了,因为正常情况下不会影响到符号位,放个详细点的解释吧:http://www.zybang.com/question/fa5aed371bc93e8c5a742c04bb61b367.html)
二进制补码这种形式可以让负数跟正数同时保存在。比方说可以计算-1加1然后就可以得到结果0.下图表示了正2和负2的二进制表示形式:
注意二进制表示形式的第一位是符号位。
上面说的是整形的表示方法,在我们的计算机里面除了整形还有好多浮点或者双精度浮点数,想知道浮点说的最大值和最小值是什么又怎么表示吗,那可能要推荐一个比较高端的网址给你去翻阅翻阅了:https://en.wikipedia.org/wiki/IEEE_floating_point 从链接大概也看出来了是维基百科对IEEE的解释吧,好吧,慢慢看看这个其实我也不怎么明白的标准吧,IEEE翻译成中文叫:电气和电子工程师协会 所以不难想象这标准应该就是他们搞出来的吧。
Page 41