首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

很简单一个有关问题

2012-02-24 
很简单一个问题floata1.0fcout (int)a endlcout (int&)a endlcout boolalpha ((int)a(i

很简单一个问题
float   a   =   1.0f;
cout   < <   (int)a   < <   endl;
cout   < <   (int&)a   < <   endl;
cout   < <   boolalpha   < <   (   (int)a   ==   (int&)a   )   < <   endl;   //   输出什么?
当中(int&)取的是什么啊.float类型怎么表示??

[解决办法]
小数的表示一般分为定点和浮点,浮点数一般由尾数(M),指数(E)和基数(B)三部分表示.X=M*BE.
为了便于移植,一般都遵循IEEE754标准。有的比较简单的单片机上不遵循。
[解决办法]
简单地解释一下,(int&)a的意思就是将a的地址后连续的四个字节的数据提取出来按int格式进行“翻译”。

就像我们存储八进制和十六进制各个翻译方式不一样的道理。把十六进制数据转换方式比作int,而把八进制转换方式比作float,如果我们将数字8按照八进制的翻译方式存储,那么存储进的数据就是10,你的int&就相当于提取这个数字再用十六进制翻译,翻译回来就不再是8而是16了。
当然这个比喻并不是那么恰当,但希望可以帮助LZ理解这个问题。

热点排行