黑马程序员技术交流社区
标题:
问题
[打印本页]
作者:
825176857
时间:
2015-7-15 09:49
标题:
问题
public class Demo {
public static void main(String[] args) {
byte a=127;
int x=++a;
int y=a+1;
int z=a++;
System.out.println("x="+x+"y="+y+"z="+z);
}
}
x=-128y=-127z=-128
咋是负的呢?
作者:
蔡锐
时间:
2015-7-15 10:59
byte的范围是-128~127
超过这个范围byte会取 最后8位当补码
++a操作a大于127了,取补码10000000
10000000的原码是-128
得x=-128
y=a+1 即-128+1=-127,a依然为-128
z=a++ 先把a赋给了z再运算 因此z=-128 ,a其实变换成了-127
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2