单精度在计算机中的存储,浮点数(单精度浮点数与双精度浮点数)在计算机中的存储.doc...

文档介绍:

浮点数在计算机中的存储

十进制浮点数格式:

浮点数格式使用科学计数法表示实数。科学计数法把数字表示为系数(coefficient)(也称为尾数(mantissa)),和指数(exponent)两部分。比如 3.684*10^2. 在十进制中,指数的基数为 10,并且表示小数点移动多少位以生成系数。每次小数点向前移动时,指数就递增;每次小数点向后移动时,指数就递减。例如,25.92 可表示为 2.592 * 10^1,其中 2.592 是系数,值 10^1 是指数。必须把系数和指数相乘,才能得到原始的实数。另外,如 0.00172 可表示为 1.72*10^-3,数字 1.72 必须和 10^-3 相乘才能获得原始值。

二进制浮点格式:

计算机系统使用二进制浮点数,这种格式使用二进制科学计数法的格式表示数值。数字按照二进制格式表示,那么系数和指数都是基于二进制的,而不是十进制,例如 1.0101*2^2.

在十进制里,像 0.159 这样的值,表示的是 0 + (1/10) + (5/100) + (9/1000)。相同的原则也适用二进制。比如,1.0101 乘以 2^2 后,生成二进制值 101.01 ,这个值表示二进制整数 5,加上分数(0/2) + (1/4) 。这生成十进制值 5.25 。下表列出几个二进制小数以及它们对应的十进制值:

二进制

十进制分数

十进制值

0.1

1/2

0.5

0.01

1/4

0.25

0.001

1/8

0.125

0.0001

1/16

0.0625

0.00001

1/32

0.03125

0.000001

1/64

0.015625

几个二进制浮点例子:二进制

十进制分数

十进制值

10.101

2+1/2+1/8

2.625

10011.001

19+1/8

19.125

10110.1101

22+1/2+1/4+1/16

22.8125

1101.011

13+1/4+1/8

13.375

编写二进制浮点值时,二进制通常被规格化了。这个操作把小数点移动到最左侧的数位,并且修改指针进行补偿。例如 1101.011 变成 1.101011*2^3

浮点数的存储

IEEE 标准754 浮点数标准使用 3 个成分把实数定义为二进制浮点值:

符号

有效数字

指数

符号位表示值是负的还是正的。符号位中的 1 表示负值,0 表示正值。

有效数字部分表示浮点数的系数(coefficient)(或者说尾数(mantissa))。系数可以是规格化的(normalized),也可以是非规格化的(denormalized)。所谓规格化,就是任何一个数的科学计数法的表示都可为1.xxx*2^n,既然小数点左边的一位都是1,就可以把这一位省略。单精度浮点数23bit的尾数部分,可表示的精度却为24位,道理就在这里。

指数表示浮点数的指数部分,是一个无符号整数。因为指数值可以是正值,也可以是负值,所以通过一个偏差值对它进行置偏,及指数的真实值=指数部分的整数—偏差值。对于32位浮点数,偏差值=127;对于64位浮点数,偏差值=1023.

浮点数的这 3 个部分被包含在固定长度的数据格式之内。IEEE 标准754

内容来自淘豆网www.taodocs.com转载请标明出处.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值