C语言问题:浮点数乘以无符号整数结果
这是我看别人在微处理器里看到别人的代码,觉得不对。浮点数乘以整数结果是0吧?!unsignedlongintdepth;depth=100*0.09;printf("%d...
这是我看别人在微处理器里看到别人的代码,觉得不对。浮点数乘以整数结果是0吧?!
unsigned long int depth ;
depth = 100*0.09;
printf("%d\n",depth);
请问这个代码输出是多少
我用VC仿真结果是0 展开
unsigned long int depth ;
depth = 100*0.09;
printf("%d\n",depth);
请问这个代码输出是多少
我用VC仿真结果是0 展开
展开全部
展开全部
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2015-01-12
展开全部
这个肯定是 9 ,因为 100 * 0.09 这是个常量表达式,生成的程序时候,编译器早计算出结果了。
也就是说编译器会成诸如下面的指令
mov dword ptr [depth],9 //这个9生成程序时已经计算出来了
如果你改成如下代码
unsigned long int depth = 100;//这里初始化
depth *= 0.09; //这里乘法复合
printf("%d\n",depth);
答案 也是9 ,为什么, 因为这个精度FPU是支持的。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
9呀 没什么好解释的吧。。。
哦 你问的是微处理器 我不懂这玩意
哦 你问的是微处理器 我不懂这玩意
追问
不是9,我用VC仿真了,是0。
追答
我不懂微处理器 不好意思 删除要分就没删除 我以为只是平常的代码执行环境
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询