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})
注意事项
对于无限循环小数,通常只能采用舍入的方式近似表示,这会带来数据表示的误差。这种误差会在计算的过程中不断累积放大,可能导致严重后果。因此,在使用二进制浮点数编程时,一定要充分考虑浮点数运算可能带来的计算误差,尽量避免对浮点数进行直接比较,在一些对误差极其敏感的情况下,建议采用十进制浮点数进行运算。
扩展阅读
- 计算机基础知识之原码、补码、反码和移码
- 计算机基础知识之浮点数的表示
热门推荐
注册安全工程师怎么审核工作年限 几年一审
葡萄糖酸锌片的好处与坏处
小麦种子发芽需要什么条件
九华山风景区:佛韵与自然的完美交融
火星探测,有新消息→
日本国宝犬山城:一座承载历史的战国名城
宇宙大爆炸之前并没有时间,那么大爆炸为什么会发生?
水性综合材料在艺术创作中的意象表达研究
冷敷和热敷的区别是什么?如何正确选择使用方法?
艾滋病检测:为何需隔三个月复查?揭秘背后的科学逻辑
【用药小知识】名贵中药—冬虫夏草
美国签证在职证明中英文模板解析
初中生长高方法
吸塑柜门什么意思?吸塑柜门好吗?
浙江多地推出“第四代住宅”,得房率飙升
周公有何能力?一生有何贡献?
新手主人只要注意这些,就能跟天生胆小谨慎的珍珠鸟搞好关系
西门子PLC中ProDiag 功能的介绍和使用教程
黑皮鸡枞菌要焯水吗?食用禁忌及烹饪方法详解
秋季视力筛查进校园进行时!教你读懂孩子的视力筛查报告单
考健康管理师有什么要求?详细报考流程及费用
揭秘兴奋剂类毒品:对身体健康的威胁与危害
黑眼圈怎么消除?一篇解密黑眼圈原因与改善方法!
一周营养食谱
4种构建出色的价值主张的方法
官方:前川崎前锋主帅鬼木达执教鹿岛鹿角
体检报告中的“血脂异常”,你了解多少?
2025国家电网认可的大学,这些院校高考生定要看!
揭秘一顿正常午餐的热量:600卡算高吗?
阿米卡星可以雾化吸入吗