面试题答案
一键面试1. 不同系统下数据类型位数
数据类型 | 32 位系统 | 64 位系统 |
---|---|---|
int | 32 位 | 32 位 |
long | 32 位 | 64 位 |
long long | 64 位 | 64 位 |
2. short
转换为 int
且不丢失数据
在 C++ 中,short
类型通常是 16 位,int
类型在 32 位和 64 位系统中通常是 32 位。由于 int
的表示范围大于 short
,所以可以直接进行隐式转换,一般不会丢失数据。例如:
short s = 100;
int i = s; // 隐式转换,通常不会丢失数据
3. 可能出现数据丢失的情况
如果 short
变量的值超出了 int
类型的表示范围,就会出现数据丢失。例如,short
的最大值为 32767
,如果 short
变量的值超过这个数,转换为 int
时,结果会截断,导致数据丢失。比如:
short largeShort = 32768;
int newInt = largeShort;
// newInt 的值为 -32768,因为 32768 超出了 short 的表示范围,发生了溢出,数据丢失