一、浮点型在内存中的存储
IEEE754规定:
32位的浮点数:最高的一位是符号位s,接着的8位是指数E,剩下的23位为有效数字M
64位的浮点数:最高的一位是符号位S,接着的11位是指数E,剩下的52位为有效数组M
一个浮点数在计算机里是运用"科学计数法"的方式来表示的~用2的多少次方来表示,2^E (2的E次方)E越大,能表示的数据范围就越大,M越大,能表示的数据的精度就越高,所以一般在使用小数时建议double类型存储
二、小数的存储推导过程
以9.125为例,double类型存储,二进制表示为1001.001
S符号位(1位) E指数部分(11位) M尾数部分(52位)
0 100 0000 0010 0011001000000000000000000000000000000000000000000000
符号部分:9.125为正数,存的是0。
尾数部分:1001.001科学计算表示为1.001001*2^3,由于所有的小数首位都是1,所以尾数只保留小数点'.'后面数字001001。尾数有效数字就是001001,后面补0即M尾数全部的表示为0011 0010 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
指数部分:双精度的指数部分是指数3加上1023。浮点小数计算时,指数值减去偏正值将是实际的指数大小。1023+3=1026,即100 0000 0010
参考: