· 超过33用户采纳过TA的回答
单单精喥的范围是多少数的尾数用23位存储加上默认的小数点前的1位1,2^(23+1) =
“浮点数的单精度的范围是多少取决于尾数部分。尾数部分的位数越多能够表示的有效数字越多。”这句赞同所以双单精度的范围是多少的有效位数肯定比单单精度的范围是多少的多。
一个数如果有效位數大于7位 如1.(12位)用float来表示就不能准确的存储了。
即用1.在计算机中存储成float的格式只能逼近到第七位
能不能准确存储还取决于这个数字(十进制数)能不能用有限的二进制位数准确的表示。 float = 2.202 float = 2.25
如果小数部分转化为二进制时候得到一个无穷值则会根据尾数部门的长度舍弃多餘的部分,从而存储一个近似的浮点值这就解释了 为什么在比较浮点数值时候 要做一个区间比较 而不是 等值比较。
浮点数的溢出是以其階码溢出表现出来的在加\减运算过程中要检查是否产生了溢出:若阶码正常,加(减)运算正常结束;若阶码溢出则要进行相应处理。另外对尾数的溢出也需要处理
阶码上溢 超过了阶码可能表示的最大值的正指数值,一般将其认为是+∞和-∞
阶码下溢 超过了阶码可能表示的最小值的负指数值,一般将其认为是0
尾数上溢 两个同符号尾数相加产生了最高位向上的进位,将尾数右移阶码增1来重新对齐。
尾数下溢 在将尾数右移时尾数的最低有效位从尾数域右端流出,要进行舍入处理
参考资料:百度百科——浮点数
你对这个回答的评價是?