如何确定float,double,longdouble型的数值范围,是怎么确定的呢?怎么算的呢?
来源:学生作业帮助网 编辑:作业帮 时间:2024/06/27 22:21:08
![如何确定float,double,longdouble型的数值范围,是怎么确定的呢?怎么算的呢?](/uploads/image/z/9912773-29-3.jpg?t=%E5%A6%82%E4%BD%95%E7%A1%AE%E5%AE%9Afloat%2Cdouble%2Clongdouble%E5%9E%8B%E7%9A%84%E6%95%B0%E5%80%BC%E8%8C%83%E5%9B%B4%2C%E6%98%AF%E6%80%8E%E4%B9%88%E7%A1%AE%E5%AE%9A%E7%9A%84%E5%91%A2%3F%E6%80%8E%E4%B9%88%E7%AE%97%E7%9A%84%E5%91%A2%3F)
如何确定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位阶数,范围更大精度更高.