【深入理解计算机系统】IEEE浮点表示

本文详细解析了IEEE标准下的浮点数表示方法,包括基本表示、规格化值、非规格化值及特殊值的概念,并提供了单精度浮点数的特殊值示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、基本表示

  在IEEE标准中,一个浮点数表示如下:
V = ( − 1 ) s × M × 2 E V=(-1)^s\times M\times 2^E V=(1)s×M×2E
其中:

  • s表示符号(sign),s=1表示负数,s=0表示正数;
  • M表示尾数(significand);
  • E表示阶码(exponent)。

  在单精度浮点格式中,符号位、阶码和尾数的位数分别为1、8、23;在双精度浮点数中,符号位、阶码和尾数的位数分别为1、11、52。

二、三种情况

1.规格化值

  当阶码的编码不全为0且不全为1时,该浮点数为规格化的值。阶码的值表示如下: E = e − B i a s E=e-Bias E=eBias其中,e是E的二进制编码,而Bias是一个值为 2 k − 1 − 1 2^{k-1}-1 2k11的偏置。
  尾数定义为: M = 1 + f M=1+f M=1+f其中 f f f是尾数的二进制编码,是一个大于0小于1的小数,由于尾数隐含了一个1,所以 M M M的实际范围是 1 ≤ M < 2 1\leq M< 2 1M<2

2.非规格化值

  当阶码的编码全为0时,该浮点苏为非规格化值。此时阶码值为: E = 1 − B i a s E=1-Bias E=1Bias
尾数值为 M = f M=f M=f此时由于尾数小于1,故不包含隐含的1。

3.特殊值

  当阶码的编码全为1时,该浮点数为特殊值,特殊值有三种:

  • s=0,尾数编码全为0,浮点数表示正无穷;
  • s=1,尾数编码全为0,浮点数表示负无穷;
  • 尾数编码不全为0,浮点数表示NaN(Not a Number)。

三、几个特殊值

  下表以单精度浮点数为例,列出了几个特殊值的表示方式。

描述阶码尾数
000…000…000
最小非规格化数00…0000…01 2 − 23 × 2 − 126 2^{-23}\times 2^{-126} 223×2126
最大非规格化数00…0011…11 ( 1 − 2 − 24 ) × 2 − 126 (1-2^{-24})\times 2^{-126} (1224)×2126
最小规格化数00…0100…00 2 − 126 2^{-126} 2126
101…1100…001
最大规格化数11…1011…11 ( 2 − 2 − 24 ) × 2 127 (2-2^{-24})\times 2^{127} (2224)×2127
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值