首页 > 其他分享 >关于float和double类型能表示的数据范围和精度分析

关于float和double类型能表示的数据范围和精度分析

时间:2022-10-20 11:39:02浏览次数:66  
标签:阶码 尾数 double float 就是 127 存取 精度

 来自教材《计算机组成原理》p16

float:6--7位

double:15--16位

意思就是double类型的数据,你确实能表达出很大的数字,但是其只有15位是精确的。

 

1、计算机中,因为需要计算电子的质量9*10^(-28)g和太阳的质量2*10^(33)g这样的大数据,需要引入一种新的方式来存取数据。

ps:一开始的方式只有定点数的表示方法,只能存纯小数或则纯整数,范围只有2^n

 

2、把32位的空间(float)分割成3部分,S、E、M表示符号位、阶码、尾数,分别分配1位、8位、23位

其中阶码代表数值的范围,尾数代表数值的精度。

阶码:8位,不用符号位,因为用了阶码的形式存取,也就是本来要表示-127---127的指数,我把他们同时加上127,那么新的数值就是0---254,这个时候,每次读取完后,真实值就是x = E - 127,基准数base = 2,也就是底数 = 2

尾数:用来存取浮点数,因为任何一个数都能表示成2^e.M的形式,这里就是存取M,所以尾数能表达多少,有效位就是多少

3、小数的标准形式:1.xxxx,

关于float和double类型能表示的数据范围和精度分析_有效位

 

 

4、二进制运算:111.01011 * 2^4 = 1110101.1,相当于右移了四位

标签:阶码,尾数,double,float,就是,127,存取,精度
From: https://blog.51cto.com/u_15833059/5779561

相关文章