[英]how IEEE-754 floating point numbers work
假设我有这个:
float i = 1.5
用二进制表示,该浮点数表示为:
0 01111111 10000000000000000000000
我分解了二进制以表示“有符号”,“指数”和“分数”块。
我不明白这是如何代表1.5。
减去偏差(127-127)后,指数为0,隐含前导部分为1的分数部分为1.1。
1.1如何不按比例缩放= 1.5?
首先考虑小数(以10为底):643.72是:
或600 + 40 + 3 + 7/10 + 2/100。
这是因为n 0始终为1,n -1与1 / n相同(对于特定情况),n -m与1 / n m相同(对于更一般的情况)。
同样,二进制数1.1为:
其中2 0为一,2 -1为二分之一。
在十进制,数字在小数点的左边有乘法器1,10,100等从小数点左边的标题,和1/10,1/100 1/1000标题右(即,10 2,10 1,10 0,小数点,10 -1,10 -2,...)。
在以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
要么:
5
5 --
32
二进制1.1是1 + .5 = 1.5
尾数实质上是按指数移动的。
3 in binary is 0011
3>>1 in binary, equal to 3/2, is 0001.1
您想读这篇-IEEE 754-1985
实际标准在这里
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.