浮点数在内存中的存储方式
前言参考:浮点数在内存中的存储
引用的链接均采用 CC BY-NC-SA 4.0 许可协议如果对文章内容有不同意见,欢迎大家到留言板交流讨论。
正文存储准则根据国际标准IEEE754(电气和电子工程协会)(下文将简称IEEE754,任意一个二进制浮点数V可以表示成下面的形式:
1234(-1)^S * M * 2^E(-1)^s表示符号位,当s=0,V为正数;当s=1,V为负数。M表示有效数字,大于等于1,小于2。2^E表示指数位。
注:1、这里的有效数字范围是[1,2),可类比十进制中有效数字的范围是[1,10)。2、指数部分以2为底数,类比十进制中指数部分以10为底数。
根据IEEE754标准规定:对于32位的浮点数(float型),最高的一位是符号位S,接下里8位是指数E,剩下的23位为有效数字M。对于64位的浮点数(double型),最高的一位是符号位S,接着的11位是指数E,剩下的52位为有效数字M。
浮点数的存储与读取方式浮点数的存储S :正数S就是0,负数S则是1。
M:M一定是1到2(左闭右开) ,M中小数点前面必然是1,因此1存储在内存中无意义 (如果把1存储 ...