整数
有符号整数最高位是符号位,0表示正数,1表示负数。无符号整数最高位是数值位。
浮点数
浮点数在内存中比较复杂。浮点数用二进制表示的通用式是:(-1)^S * M * 2 ^ E
S决定了它的正负 ,M位该浮点数的有效数字, 2^E为浮点数的指数位。举个例子,10进制的5.5用二进制表示为101.1, 科学计数法表示为1.011 * 2^2, 由此可知, S为0, M为1.011, E为2.而在内存中存储的不是浮点数本身,而是S, M, E。在32位中,用最高位的第一位存储S, S后面的8位存储E, 剩下的23位存M。在64位中最高位存S, 后面的11位存E, 剩下的52位存M。实际上内存在存M(有效数字)的时候不会存整数“ 1 ”, 只存小数点后面的数字。这样做的好处是:可以多出来一比特的空间存更多的数字。再存E的时候, 并不会存E的真实值, E的真实值会加一个中间值,在32位中,中间值是127, 64位中是1023.为什么要这样做呢?因为存E的8个(11个)比特位中没有符号位,只能存正数。