关于C++的类型转换问题
现有以下代码:#include <iostream>
using namespace std;
union fd
{
float d;
unsigned char data;
}speed;
int main()
{
speed.d = 1024.00;
cout << "speed.d:" << speed.d <<endl;
for(int i=0;i<4;i++)
{
//cout << i <<":" <<speed.data<<endl;
cout << i <<":" <<int(speed.data)<<endl;
}
return 0;
}
运行结果为:
speed.d:1024
0:0
1:0
2:128
3:68
请问为什么尾数是0呢?
说清楚一点,哪个尾数是 0 ? 理解了
因为是转化成1.xxxxxx*2^n()然后再区分符号位,指数位,尾数位,所以当没有小数位,整数位是类似1000000000这种类型,这尾数位全为0,相当于1.00000*2^n,取0.0000000求二进制小数,所以均为0.
页:
[1]