仅用于记录学习过程
针对一个浮点数如:13.625
我们可以写成二进制: 1101.101
用科学计数法表示:1.101101 *2^3
我们说他的指数为:3
指数部分有特殊的存储规则:存储真实指数+指数部分存储范围一半的数值
即:float为例 :2^7-1 = 127 127+3 = 130
130-->二进制 10000010
因为改写为二进制以后,第一位肯定为1,所以我们不保存第一位
我们称他的尾数部分为:101101
为正数:符号位为 0
综上保存为:0 10000010 10110100000000000000000
验证:
#include<iostream>
using namespace std;
union ufloat{
float f;
unsigned u;
};
int main()
{
ufloat a;
a.f = 13.625f;
unsigned os = 1;
for(int i=sizeof(unsigned)*8-1;i>=0;i--)
{
cout<<((a.u>>i) & os)<<" ";
}
cout<<endl;
return 0;
}