如何确定float,double,longdouble型的数值范围,是怎么确定的呢?怎么算的呢?

来源:学生作业帮助网 编辑:作业帮 时间:2024/07/12 05:35:44
如何确定float,double,longdouble型的数值范围,是怎么确定的呢?怎么算的呢?
xRR@~\Ihg 3@0´>JQV-c!Жj _f•г7h~wL%KGoK:7r~k\*ユ!=?ݏ5283{yC^E%»ԿHUCH x]#~vP񘸦S>=X .o _UE¡Ǭ1gLl%Xڲ !-`zؒrcu/-( RK}/'Ia(o _>*K\2Z.b\N<.-X%;R;{=;G;iE|ZZIxe 5 A/CqV3bHᅾF!]ٌ'Hq]Mֲ'Vb։BŮJ,FJJ"Dˋ6,ZW} iWĪ \_hҁ#94(5 ^L}%KR

如何确定float,double,longdouble型的数值范围,是怎么确定的呢?怎么算的呢?
如何确定float,double,longdouble型的数值范围,是怎么确定的呢?怎么算的呢?

如何确定float,double,longdouble型的数值范围,是怎么确定的呢?怎么算的呢?
float是32位浮点数第一位是符号位,1表示负数,0为正,设这一位为a,接着8位为尾数,尾数首位为符号位设为b,后7位是数据设这个数为c,接下来23位为阶码假设为d.最后结果就是 (-1)^a * d*2^-23 * (-1)^b*2^(c)
其中a,b只有0,1两个值,d为23位二进制码 当d全为1,d*2^-23=0.34(约等于),c最大值为127,2^(127)=10^39
所以取值范围是 ( +- 3.4)*10^(+-38),23位阶码有效数字换成10进制最多7位,所以精度较低.
其他的算法都一样,只是double得是11位尾数,52位阶数,范围更大精度更高.