代码如下:
float a = 1.5f;
cout << (int)a << endl; // 损失精度,类型转换
cout << &a << endl; // a的地址0x
cout << *(int*)(&a) << endl; // 整数存储方式读取float a *(int*)(&a) = (int&)a
cout << (int&)a << endl; // 整数存储方式读取float a

本文通过C++代码示例介绍了浮点数到整数的类型转换过程及其带来的精度损失问题,并展示了如何直接从内存中按整数存储方式读取浮点数值。
代码如下:
float a = 1.5f;
cout << (int)a << endl; // 损失精度,类型转换
cout << &a << endl; // a的地址0x
cout << *(int*)(&a) << endl; // 整数存储方式读取float a *(int*)(&a) = (int&)a
cout << (int&)a << endl; // 整数存储方式读取float a


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