收藏 分享(赏)

浮点数的表示.doc

上传人:fcgy86390 文档编号:4564069 上传时间:2019-01-02 格式:DOC 页数:4 大小:60KB
下载 相关 举报
浮点数的表示.doc_第1页
第1页 / 共4页
浮点数的表示.doc_第2页
第2页 / 共4页
浮点数的表示.doc_第3页
第3页 / 共4页
浮点数的表示.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

1、 单精度数,是指计算机表达实数近似值的一种方式。VC 中,Single(单精度浮点型)变量存储为 IEEE 32 位(4 个字节)浮点数值的形式,它的范围在负数的时候是从 -3.402823E38 到 -1.401298E-45,而在正数的时候是从 1.401298E-45 到 3.402823E38 。符号位 S(sign) - 1bit 0代表正号,1 代表负号。指数位 E(exponent) - 8bitE 的取值范围为 0-255(无符号整数),实际数值 e=E-127。有时 E也称为“移码”,或不恰当的称为“阶码”(阶码实际应为 e)尾数位 M(mantissa) - 23bitM

2、也叫有效数字位(sinificand)、系数位(coefficient), 甚至被称作“小数”。在一般情况下,m=(1.M)2,使得实际起作用范围为 1尾数2。为了对溢出进行处理,以及扩展对接近 0的极小数值的处理能力,IEEE 754对 M做了一些额外规定,参见后文介绍。对于内部存储数据(00111111 01100110 01100110 01100110)2:符号位(最左侧)S=0。这表示是个正数指数(左侧第 2-9位)E=(01111110)2=(126)10,所以 s=S-127=-1。尾数(最后的 23位)M=(1100110 01100110 01100110)2, m=(1.M

3、)2=(1.7999999523162841796875)10该二进制小数转为 10进制的计算方式为 1 + (1/2+1/4) + (1/32+1/64) + (1/512+1/1024)实际值N=1.7999999523162841796875*2-1=0.89999997615814208984375(其实,这个数据是 0.9的单精度浮点数的实际内部存储,可以看到有一定的误差)float单精度型,在内存中占 4个字节(32 位),有效数字是 7位十进制数字(小数点算一位,小数点后 6位。)。double双精度型,在内存中占 8个字节(64 位),有效数字是 15位十进制数字。单精度浮点数

4、的表示范围及说明表示范围最大表示范围:单精度浮点数可以表示的范围为3.40282 * 1038(1.1111.1)2*2127)接近于 0的最小值:单精度浮点数可以表示 1.175 * 10-38(1.00.0)2*2-126)的数据而不损失精度。当数值比以上值小的时候,将会由于尾数的有效位数减少而逐步丧失精度(IEEE 754 的规定),或者有的系统则直接采用 0值来简化处理过程。精度单精度浮点数的实际有效精度为 24位二进制,这相当于 24*log1027.2 位 10进制的精度,所以平时我们说“单精度浮点数具有 7位精度”。(精度的理解:当从(1.000.0)2 变化为(1.000.1)

5、2 时,变动范围为 2-23,考虑到因为四舍五入而得到的 1倍精度提高,所以单精度浮点数可以反映 2-24的数值变化,即 24位二进制精度)阶码值 0和 255分别用来表示特殊数值:当阶码值为 255时,若分数部分为0,则表示无穷大;若分数部分不为 0,则认为这是一个非数值。当阶码和尾数均为 0时则表示该数值为 0,因为非零数的有效位总是1,因此特别约定,这表示为 0。当阶码为 0, 尾数不为 0时,该数绝对值较小, 允许采用比最小规格化数还要小的数表示浮点数 7位有效数字。双精度数 16位有效数字。 浮点数取值范围: 负数取值范围为 -3.4028235E+38 到 -1.401298E-4

6、5,正数取值范围为 1.401298E-45 到 3.4028235E+38。 双精度数取值范围: 负值取值范围-1.79769313486231570E+308 到 -4.94065645841246544E-324,正值取值范围为 4.94065645841246544E-324 到 1.79769313486231570E+308。 浮点数的表示遵循 IEEE 754标准。一个浮点数由三部分组成:符号位 S、指数部分 E(阶码)以及尾数部分 M(如下)。 Floating S-E-M 1位-8 位-23 位 Double S-E-M 1位-11 位-52 位 十进制数的换算计算公式为(nm 表示 n的 m次幂,B 表示前面的数字是二进制): S * 2(E-127) * (1.M)B浮点数的精度取决于尾数部分。尾数部分的位数越多,能够表示的有效数字越多。 单精度数的尾数用 23位存储,加上默认的小数点前的 1位 1,2(23+1) = 16777216。因为 107 16777216 108,所以说单精度浮点数的有效位数是7位。双精度的尾数用 52位存储,2(52+1) = 9007199254740992,1016 9007199254740992 1017,所以双精度的有效位数是 16位。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 实用文档 > 统计图表

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报