float b=1.0f;
cout<<"int(b) "<<int(b)<<endl;
cout<<"(int&)b "<<(int&)b<<endl;
cout<<"(int)&b "<<(int)&b<<endl;
cout<<boolalpha<<"((int)b==(int&)b) "<<((int)b==(int&)b)<<endl;
int a=1;
cout<<"a "<<a<<endl;
cout<<"(int&)a "<<(int&)a<<endl;
cout<<"(int)&a "<<(int)&a<<endl;
cout<<boolalpha<<"((int)a==(int&)a) "<<((int)a==(int&)a)<<endl;

cout << (int)&b << endl是把b的地址转化为int值输出。
float的结构为
1个符号位,8个阶码位和23个尾数位
double为
1个符号位,11个阶码位,52个尾数位
解析C++中float与int类型转换的底层实现
本文详细解析了C++中float类型与int类型在内存中的存储方式及相互转换的过程,包括浮点数的结构、转换原理以及转换后的实际效果。通过实例演示,帮助开发者深入理解不同类型在内存中的表示与操作。
1万+

被折叠的 条评论
为什么被折叠?



