c语言里 int a=2; double b=3 2.1; a= a b; printf(a=%d,b=%d , a,b); 结果是什么?为什么?

[复制链接]
查看11 | 回复1 | 2011-3-17 03:41:24 | 显示全部楼层 |阅读模式
回复

使用道具 举报

千问 | 2011-3-17 03:41:24 | 显示全部楼层
<pre id=\"best-answer-content\" class=\"reply-text mb10\">a=8,b=1717986918

a=8是因为根据c的运算符优先级原则:
a b详单与执行a b;a a=a b等于a=a b;a

b=1717986918是因为C/C编译器都是按照IEEE(国际电子电器工程师协会)制定的IEEE 浮点数表示法来进行运算的。这种结构是一种科学表示法,用符号(正或负)、指数和尾数来表示,底数被确定为2,也就是说是把一个浮点数表示为尾数乘以2的指数次方再加上符号。
所以5.1的浮点数存储相当于整数1717986918的存储
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行