Types IEEE-754浮点数的工作原理

Types IEEE-754浮点数的工作原理,types,floating-point,ieee-754,Types,Floating Point,Ieee 754,假设我有这个: float i = 1.5 在二进制中,此浮点表示为: 0 0111111 1000000000000000000000 我将二进制文件分解,以表示“有符号”、“指数”和“分数”块 我不明白的是这怎么代表1.5 减去偏差(127-127)后,指数为0,隐式前导的分数部分为1.1 1.1是如何以零=1.5来缩放的?二进制中的1.1是1+。5=1.5是以十进制(以10为基数)为基础的:643.72是: (6*102)+ (4*101)+ (3*100)+ (7*10-1)+ (2

假设我有这个:

float i = 1.5
在二进制中,此浮点表示为:

0 0111111 1000000000000000000000

我将二进制文件分解,以表示“有符号”、“指数”和“分数”块

我不明白的是这怎么代表1.5

减去偏差(127-127)后,指数为0,隐式前导的分数部分为1.1


1.1是如何以零=1.5来缩放的?

二进制中的1.1是1+。5=1.5是以十进制(以10为基数)为基础的:643.72是:

  • (6*102)+
  • (4*101)+
  • (3*100)+
  • (7*10-1)+
  • (2*10-2)
或600+40+3+7/10+2/100

这是因为n0总是1,n-1与1/n相同(对于特定情况),n-m与1/nm相同(对于更一般的情况)

类似地,二进制数1.1为:

  • (1*20)+
  • (1*2-1)
20是一,2-1是二分之一

在十进制中,小数点左边的数字有乘数1、10、100等,从小数点左边开始,到1/10、1/100、1/1000右边开始(即102、101、100、小数点、10-1、10-2……)

在base-2中,二进制点左边的数字有乘法器1、2、4、8、16等等。右边的数字有乘法器1/2、1/4、1/8等等

例如,二进制数:

101.00101
| |   | |
| |   | +- 1/32
| |   +---  1/8
| +-------    1
+---------    4
相当于:

4 + 1 + 1/8 + 1/32
或:

你想看这个-


实际标准是

尾数基本上是按指数移动的

3 in binary is 0011
3>>1 in binary, equal to 3/2, is 0001.1

你的意思是“符号”、“指数”和“有效位”。哈,我不是想用这些术语。问题的标题应该是“如何理解二进制浮点数”或类似的东西-实际上,它与CUpdated标题无关,以反映C根本不确定编码的事实,hatorade确实在询问IEEE-754格式。所有这些标准的实际PDF通常可以通过谷歌搜索找到……维基百科页面不是标准,也不应该这样使用。这就是(我认为)Potatoswatter的观点。将IEEE站点添加到实际标准中——第一个站点用更通俗的术语解释了它。我的观点也是,它们可以免费找到。我曾想过提供一个链接,但那可能是不明智的:v(.谢谢,@Tyler,那看起来和听起来都好多了。
3 in binary is 0011
3>>1 in binary, equal to 3/2, is 0001.1