请问如下的程序输入的结果是什么?
public class test2 {
public static void main(String[] args){
int i = 254;
System.out.println((byte)i);
}
}
结果为:-2
为什么会出现这样的结果呢,举个例子说明,
假如时钟的12点改成0点,那么时间就是从0-11,可以表示12个数
现在时间是11点 再加1就是0点了,而不是12点。为什么呢,因为11+1-12=0。
同理 254实际上是这样的byte范围是-128~127 它可以表示256个数所以254-256=-2。
本文通过一个 Java 程序示例解释了当整数超出 byte 类型的范围时,如何根据 byte 的取值范围(-128 至 127)进行取模运算得到正确的结果。
1万+

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



