#include <stdio.h>
#include <stdlib.h>
int main()
{
typedef struct _FP_SIGLE{
unsigned int nMantissa : 23; //尾数部分
unsigned int nExponent : 8; //指数部分
unsigned int nSign : 1; //符号位
} FP_SINGLE;
float a = 19.625;
FP_SINGLE* p = (FP_SINGLE*)&a;
printf("%d, %#X, %#X\n", p->nSign, p->nExponent-127, p->nMantissa);
system("pause");
return 0;
}
运行结果:
0, 0X4, 0X1D0000
为什么运行结果是这个,十六进制转换回小数二进制却不是原来的19.625的二进制形式
目前暂无任何回答
- 0 回答
- 0 关注
- 1314 浏览
添加回答
举报
0/150
提交
取消