为了账号安全,请及时绑定邮箱和手机立即绑定

一个关于小数储存通过程序输出十六进制的问题

一个关于小数储存通过程序输出十六进制的问题

C
精慕门4541864 2017-08-06 19:18:34
#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
提交
取消
意见反馈 帮助中心 APP下载
官方微信