int转换成byte打印输出结果探讨

来源:互联网 发布:java隐藏域传值 编辑:程序博客网 时间:2024/05/22 03:59

请问如下的程序输入的结果是什么?
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。

原创粉丝点击