IEEE754浮点数表示形式详解
创作时间:
作者:
@小白创作中心
IEEE754浮点数表示形式详解
引用
1
来源
1.
https://www.cnblogs.com/kohler21/p/18240972
IEEE754浮点数标准是计算机科学领域中非常重要的一项技术标准,几乎所有的现代计算机都采用这一标准来表示浮点数。本文将详细介绍IEEE754浮点数的表示形式及其相关概念。
背景与标准
在20世纪80年代初之前,不同厂商的计算机内部浮点数表示形式可能不同,这给数据传送和程序移植带来了很大的不便。为了解决这一问题,美国电气及电子工程师协会(IEEE)于1985年发布了浮点数标准IEEE754。目前,几乎所有计算机都采用这一标准表示浮点数。
IEEE754标准主要包括两种基本的浮点数格式:
- 32位单精度浮点数:对应C语言中的
float
型。 - 64位双精度浮点数:对应C语言中的
double
型。
核心概念
符号位
符号位取值0表示正数,取值1表示负数。
阶码
阶码采用定点整数表示,使用移码形式。在32位单精度浮点数中,阶码为8位,偏置常数为127(即(2^7-1)),而不是标准移码的128。这种设计是为了避免最小规格化数的倒数溢出。
尾数
尾数采用定点小数表示,使用原码形式。在32位单精度浮点数中,尾数实际有24位,但只保存23位,节省的比特位可用于提高尾数的精度。完整的尾数形式为1.M。
32位单精度浮点数示意图
特殊值
- NaN(非数):用于表示(\frac {0}{0})、(\frac {∞}{∞})、0×∞、负数的平方根等。
- 非规格化数:用于处理阶码下溢,使得出现比最小规格化数还小的数时程序也能继续进行下去。
- 无穷大数:引入无穷大数可使计算过程出现异常的情况下程序能继续执行,并且可为程序提供错误检测功能。
32位与64位浮点数对比
实例分析
例题1
将十进制数408.6875转换成IEEE754单精度浮点数的十六进制机器码。
例题2
若C1830000是某个IEEE754单精度浮点数的十六进制机器码,求其对应的十进制值。
历年考试题
- 2011年题13:float型变量x=-8.25在32位浮点寄存器FR1中的内容是(A)。
- 2013年题13:C640000H表示的数是(A)。
- 2014年题14:(f1)=CC900000H, (f2)=B0C00000H时,x和y之间的关系是(A)。
- 2022年题14:-0.4375的IEEE754单精度浮点数表示为(A)。
表示范围
- 最大正整数:(2^{128}-2^{104})
- 最小的规格化正数:(1.0 \times 2^{-126})
注意事项
对于无限循环小数,通常只能采用舍入的方式近似表示,这会带来数据表示的误差。这种误差会在计算的过程中不断累积放大,可能导致严重后果。因此,在使用二进制浮点数编程时,一定要充分考虑浮点数运算可能带来的计算误差,尽量避免对浮点数进行直接比较,在一些对误差极其敏感的情况下,建议采用十进制浮点数进行运算。
扩展阅读
- 计算机基础知识之原码、补码、反码和移码
- 计算机基础知识之浮点数的表示
热门推荐
解冻银行卡全攻略:查询原因、保障资金到法律援助
银行存款冻结期限一年,三种情形可申请解冻
尊重需求:心理健康的关键驱动力
尊重:友谊长存的基石
人本主义心理学:赢得尊重的艺术
民航局通报“3·21”空难调查最新进展,我们能从中发现什么?
“3.21”空难调查报告说清楚空难原因了吗?
卡歌钙片真假难辨?这些细节一眼识破
科学补钙防骨质疏松:剂量、时间、维生素D缺一不可
友谊变迁中的成长秘籍
双减政策下,青春期友谊如何守护心理健康?
孩子成长中的友谊变迁:从玩伴到知己
汉中:兵家必争之地的战略密码
留坝县冰雪奇缘:汉中最美的冬天
海南省五指山市优化调整房地产政策,取消面积限制对市场有何影响?
解密SAS:英国皇家特种部队的致命格斗术
揭秘中美特种部队:从起源到发展
从5%到11%:2015年卷烟消费税调整大幅增财政收入800亿
春运抢票攻略:避开法律陷阱
2025春运火车票省钱攻略:折扣票+优惠活动+购票技巧全解析
生吃鱼胆中毒,这些急救方法请务必掌握!
胃酸倒流能吃和不能吃的食物。吃出舒适,避免胃酸倒流的秘密食谱!
应对皮肤干燥的有效方法与日常护理技巧解析
《持续买入》:普通人实现财富自由的投资秘诀
耳机:现代青年社交的隐身衣与情感避风港
用Telegram管理你的日常任务
鱼胆进眼会导致失明?揭秘鱼胆毒素的危害与预防
打造济南“第四大名胜” 山东加快小清河生态廊道规划建设
青州古城旅游攻略:夜游、美食与自驾路线全解析
2024广州中考:新校区分数反超本部,综合高中首年招生爆满