面试题答案
一键面试- 取值范围:
- byte:-128 到 127($-2^{7}$ 到 $2^{7}-1$)
- short:-32768 到 32767($-2^{15}$ 到 $2^{15}-1$)
- int:-2147483648 到 2147483647($-2^{31}$ 到 $2^{31}-1$)
- long:-9223372036854775808 到 9223372036854775807($-2^{63}$ 到 $2^{63}-1$)
- 把int类型的值赋给short类型变量:
- 发生的情况:如果int类型的值在short类型的取值范围内,正常赋值。但如果int类型的值超出了short类型的取值范围,会发生数据截断,导致数据丢失和精度损失。例如,将一个大于32767的int值赋给short变量,会得到一个错误的结果,因为short类型无法表示这么大的值。
- 处理方式:需要进行强制类型转换。如
int num = 100; short s = (short)num;
,不过要注意强制类型转换可能带来的数据丢失风险,在进行转换前要确保数据在目标类型的取值范围内,否则可能得到错误结果。