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})
注意事项
对于无限循环小数,通常只能采用舍入的方式近似表示,这会带来数据表示的误差。这种误差会在计算的过程中不断累积放大,可能导致严重后果。因此,在使用二进制浮点数编程时,一定要充分考虑浮点数运算可能带来的计算误差,尽量避免对浮点数进行直接比较,在一些对误差极其敏感的情况下,建议采用十进制浮点数进行运算。
扩展阅读
- 计算机基础知识之原码、补码、反码和移码
- 计算机基础知识之浮点数的表示
热门推荐
银有磁性吗?
如何正确进行CPU超频以提升电脑性能?
金丝楠木:中国特有国宝级木材的前世今生
金丝楠木:中国特有珍贵木材的前世今生
如何高效利用网络媒体发布文章提升曝光度
产品质量审核的具体项目有哪些
尤文杯赛大胜卡利亚里,欧冠能赢,意大利杯能赢,联赛就是赢不了
《儒林外史》的现代启示
涉案财物规范化管理流程的关键要素解析
315打假曝光餐饮行业乱象,麻六记开启后厨直播回应质疑
日不落帝国的全球霸权之路
孕期便秘怎麼辦?中醫專家教你輕鬆解決排便問題
股票被套后的应对策略与建议
青霉素:从过敏反应到临床应用的全面解析
郑州企业产假工资发放与社保承担实操指南:HR必知的合规要点
北京市取供用排节水见成效 水资源储备大幅增加
李世民为何传位给了平庸的李治,而不是博学多才的魏王李泰?
燃油宝:清除积碳与降低油耗的真相探寻
有效缓解胸闷气短的实用建议与注意事项分享
肉变味了高温处理还能吃吗?专业医生这样回答
《双影奇境 Split Fiction》应该使用键盘还是手柄?
认识及处理3大伤口种类
水培植物养护指南:换水频率、水质选择与病害处理
2月末外储规模、黄金储备均微增 金价高企专家提醒权衡收益与风险
漫威超级战争博士奇背景故事,超能力由来及人生崛起历程
《奇异博士》:魔法与哲学的交织
孙颖莎夺得WTT中国大满贯赛女单冠军,成就两个第一
“给钱就能拿上海户口”?暗访落户中介市场
自媒体收益的多元途径与精细化策略探讨
甲状腺癌的典型症状、治疗方法和预防措施