浮点型float问题

来源:百度知道 编辑:UC知道 时间:2024/05/24 23:54:29
今天看了float在内存中的格式(ieee-754标准),然后写了些程序,发现问题了:
float a=1;
printf("%x\n",(int&)a); //能正确输出内存中的a:3f800000
printf("%x\n",a); //错误输出:0
类似的:
float b=0;
printf("%x\n",(int&)b); //能正确输出内存中的b:0
printf("%x\n",b); //错误输出:3ff00000
问:
(int&)究竟是啥意思?
为什么错误输出了呢?

http://hi.baidu.com/bluewanderer/blog/item/0bd07f54958713c3b645aeed.html

注意最后那部分,直接以float类型传递给printf的话会被自动转换成double

另外printf("%x\n",b); //错误输出:3ff00000
应该是0吧

关于(int &)就是直接把其他类型的变量时为int类型的变量 而不进行数据内容的转换。