计算机中的浮点数表示
1个回答
展开全部
目前,所有的计算机都支持这个标准,为科学应用程序在不同机器上的可移植性鉴定了基础
IEEE浮点标准用 V = (-1) s * M * 2 E
表示一个浮点数
IEEE 754规定,数字系统中的浮点数是对数学中小数的近似,同时规定表达浮点数的0,1序列被分为三部分(三个区域)
对于32位单精度浮点数来说,exponent的宽度为8,fraction位宽度为23表示实际的值M
表示规则:
如125.125 10
对于 64位双精度浮点数 来说, exponent 段为 11 位, 偏移值 为 1023 ,fraction段长度为52位(64 - 1 - 11)
我们知道在任意两个不等的实数之间总有无穷多个两两不等的实数,但浮点数不是这样,浮点数是 稀疏的 ,两个浮点数之间只有有限个浮点数,并且两个相邻的浮点数之间的距离可能很大,这就是精度的问题
比如两个相邻的32位单精度浮点数
64位双精度浮点数不仅表示得数得 范围扩大 了,而且其所刻画得浮点数分布更加 细密 ,相对误差也更小
但无论如何,浮点数终究只是实数(小数)得粗糙近似,不可能完全刻画实数,因为浮点数得位数终究是有限的,也就是说他所能表示的总是有限个有理数
最后,推荐一篇关于单精度和双精度浮点数的区别的好文
java浮点类型float和double的主要区别
实数转换流程图
IEEE浮点标准用 V = (-1) s * M * 2 E
表示一个浮点数
IEEE 754规定,数字系统中的浮点数是对数学中小数的近似,同时规定表达浮点数的0,1序列被分为三部分(三个区域)
对于32位单精度浮点数来说,exponent的宽度为8,fraction位宽度为23表示实际的值M
表示规则:
如125.125 10
对于 64位双精度浮点数 来说, exponent 段为 11 位, 偏移值 为 1023 ,fraction段长度为52位(64 - 1 - 11)
我们知道在任意两个不等的实数之间总有无穷多个两两不等的实数,但浮点数不是这样,浮点数是 稀疏的 ,两个浮点数之间只有有限个浮点数,并且两个相邻的浮点数之间的距离可能很大,这就是精度的问题
比如两个相邻的32位单精度浮点数
64位双精度浮点数不仅表示得数得 范围扩大 了,而且其所刻画得浮点数分布更加 细密 ,相对误差也更小
但无论如何,浮点数终究只是实数(小数)得粗糙近似,不可能完全刻画实数,因为浮点数得位数终究是有限的,也就是说他所能表示的总是有限个有理数
最后,推荐一篇关于单精度和双精度浮点数的区别的好文
java浮点类型float和double的主要区别
实数转换流程图
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询