计组2:数的浮点表示

这里写图片描述
计算机中采用规格化数的形式,计算机中存储的是数符,阶符,阶码,尾数。
这里写图片描述
这里写图片描述


公众号上看到的一道题目

#include <stdio.h>
int main(){
   double a = 10;
   printf("a = %d\n",a);
   return 0;
   }

结果是多少?
我运行了一下,结果是a = 0;
这是为什么?
根据IEEE标准,双精度浮点数由8个字节共64位组成,其中最高位为符号位,次高的11位为指数位,余下的52位为尾数位
这里写图片描述
printf会从低地址到高地址读取4个字节当做int型数据去解释并输出,所以,经过分析这段代码的输出应该为“a = 0”

猜你喜欢

转载自blog.csdn.net/danieldingshengli/article/details/80934033
今日推荐