浮点数总结

本文详细介绍了浮点数的表示方式,包括 IEEE 浮点标准中的符号位、有效数和指数,以及单精度和双精度的区别。讨论了规格化值、非规格化值和特殊数值的情况,同时通过实例展示了整数转换为浮点数的过程。文章还指出浮点运算的不精确性可能导致的问题,如不具有结合性,可能导致比较错误。
摘要由CSDN通过智能技术生成

浮点数操作

浮点运算的不精确性能够产生灾难性的后果。 1991年2月25日,在海湾战争期间,
沙特阿拉伯的达摩地区设置的美国爱国者导弹,拦截伊拉克的飞毛腿导弹失败。飞毛腿导弹

击中了美国的一个兵营,造成28名士兵死亡,美国GAO对失败原因做了详细的分析,并且确

定潜在的原因在于一个数字计算不精确。



IEEE浮点标准用 V = (-1)^s * M * 2^E 表示一个数
符号位:(s) 决定是负数还是正数(s=1)(s=0)
有效数:(n) M 是一个二进制小数,它的范围在1~2*s之间,或在0~1*s之间
指数 :(k) E 是2的幂(可能是负数), 它的作用是对符点数加权。

符点数的位表示被划分为三个域,以编码这些值

在单精度浮点数(C 中 float) 中 分别为 s = 1, k = 8, n = 23 产生32位的表示
在双精度浮点数(C 中 double)中 分别为 s = 1, k = 11,n = 52 产生64位的表示

根据 k 值,又分为:规格化值、非规格化值、特殊值

规格化值:
最普遍,即K的位模式既不是全0,也不是全1时,就属这类情况。
K域被解释为表示偏置(biased)形式的有符号整数。
指数的值是 E = e - Bias
e:    (e是无符号数,就是k域的值)
Bias    (Bias = 2^(k-1) - 1)   单精度是(127 = 0x7F),双精度是

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值