给定一个 int 型数据 2147483647, 分别转换为 short、unsigned short、unsigned int、float 类型的数据;
时间: 2024-05-04 11:21:46 浏览: 140
float、int、unsigned int数据与其在实际内存中表示的相互转换小程序
将 int 型数据 2147483647 转换为 short 类型时,由于 short 类型的取值范围是 -32768~32767,所以会发生溢出,结果为 -1。
```c++
int num = 2147483647;
short short_num = (short)num;
cout << short_num << endl; // 输出 -1
```
将 int 型数据 2147483647 转换为 unsigned short 类型时,由于 unsigned short 类型的取值范围是 0~65535,所以不会发生溢出,结果为 65535。
```c++
unsigned short ushort_num = (unsigned short)num;
cout << ushort_num << endl; // 输出 65535
```
将 int 型数据 2147483647 转换为 unsigned int 类型时,由于 unsigned int 类型的取值范围是 0~4294967295,所以不会发生溢出,结果为 2147483647。
```c++
unsigned int uint_num = (unsigned int)num;
cout << uint_num << endl; // 输出 2147483647
```
将 int 型数据 2147483647 转换为 float 类型时,由于 float 类型的精度限制,转换后的结果可能会丢失精度,导致结果不准确。在本例中,转换后的结果为 2147483648.0。
```c++
float float_num = (float)num;
cout << float_num << endl; // 输出 2.14748e+09
```
阅读全文