java中byte的加减

来源:百度知道 编辑:UC知道 时间:2024/05/31 04:52:28
byte b=127;
System.out.println(b+1);
System.out.println((byte)b+1);
System.out.println((byte)(b+1));

输出为什么是128 128和-128? 原理是什么?

第一个:b是byte它与1加进,1是int的,所以结果是int的。也就是128
第二个:也是一样
第三个:b是byte的加1后是int的为128.而128转换为byte时,byte表示不下所以就截取前面的一部分表示(二进制位)。所以就为了-1

首先计算机将127转换成二进制形式即1111111
byte的范围是-128---127之间
b+1 结果是10000000 刚好是128
二进制的运算.这就是原理