强制转换
来源:4-6 【强制转换】按目标数据类型转换

ImSher
2023-11-22
请问老师这个为什么b2输出是 4 呢?我理解它超出了byte范围,但为什么是 4 这个值呢?
int i_1 = 26; int i_2 = 260; byte b_1 = (byte) i_1; byte b_2 = (byte) i_2; System.out.println("b_1的值: " + b_1); System.out.println("b_2的值:" + b_2);
写回答
1回答
-
是的,超出范围了。
int 型变量占 4 个字节,一个字节占 8 个二进制位,int 类型共占 32 个二进制位。计算机中以二进制形式存储数据,int 260 对应的二进制值为 100000100。
而 byte 类型占 1 个字节,也就是 8 个二进制位,int 类型转换 byte 类型,只会保留 8 位,将舍弃高位的数字,100000100 转成 byte 类型对应的二进制就是 00000100,该值对应的十进制数值就是 4
30
相似问题