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})
注意事项
对于无限循环小数,通常只能采用舍入的方式近似表示,这会带来数据表示的误差。这种误差会在计算的过程中不断累积放大,可能导致严重后果。因此,在使用二进制浮点数编程时,一定要充分考虑浮点数运算可能带来的计算误差,尽量避免对浮点数进行直接比较,在一些对误差极其敏感的情况下,建议采用十进制浮点数进行运算。
扩展阅读
- 计算机基础知识之原码、补码、反码和移码
- 计算机基础知识之浮点数的表示
热门推荐
为什么主人的指令狗狗总是不听?看看你有没有踩中这5个错误
影响中药药性的四大关键因素
债券市场为何连续回调
南宁方特游玩攻略(门票+交通+开放时间)
客服倾听的艺术:解锁高效沟通的四个关键步骤
不原地打方向的好习惯
Win10安全模式全攻略:八种进入方式任你选
追踪美国加州山火失控原因
江苏洪泽湖旅游攻略:自然与人文的完美融合
贵州石阡:清明至 茶香糯米鸡香飘千万家
高效节水技术在旱作农业中的应用
存钱罐放哪里最好?这几个位置助你存下更多钱!
偏财位可以放存钱罐吗,保险柜怎么放聚财
中国高铁,正在改变海外用户出行体验
福州理工学院怎么样:一所应用型本科高校的全面解析
谭延闿与湖南现代化进程
人工智能中A*算法的启发式的一致性有什么意义
如何安全有效地进行车辆变道?
项目合同管理书籍推荐
美的燃气灶风门调节方法(提高燃气灶燃烧效率的关键措施)
如何在房地产领域中做出合理的居住环境考量?这些考量如何提升生活质量?
重磅|肠道菌群:开启癌症防治的全新“钥匙”
过桥业务的定义是什么?开展过桥业务需要注意哪些问题?
减脂餐搭配公式:轻松实现科学减脂
肋骨骨折的患者怎么处理
适应:应对环境挑战
物理性防晒是什么?和化学性防晒的差异?防晒成分、优缺点解析
牙刷的选择至关重要
患方经验宝库7:如何向卫健委举报医院违法违规更有效?
从鱼肠到化妆台,海洋细菌产物或将引领护肤抗皱新潮流