原理:在Java以及各中编程语言中,都会有自增和自减这样的表述方式,例如:a++ (a = a+1)代表将a先赋值后运算(或先输出后 运 算),++a表时先运算后赋值(或先运算后输出)
实例代码1:
public class HomeWork01 { public static void main(String[] args) { int a = 4; System.out.println(a++); System.out.println(a);}}运行结果:4 5
解释说明:在上述代码中,首先我们将a的值先输出,即a=4,然后我们再对a进行加1的操作,所以第二次输出的a的值为5
实例代码2:
public class HomeWork01 { public static void main(String[] args) { int a = 4; System.out.println(++a); } }运行结果:5
解释说明:在这个问题中,我们用了++a,表示先为a做加1的运算,然后再进行输出,即为:
public class HomeWork01 { public static void main(String[] args) { int a = 4; a = a+1; System.out.println(a); } }自减同理。实例代码3:
public class Test { public static void main(String[] args) { byte b = 127; System.out.println(++b); } }运行结果:-128
结果分析:127变成二进制位0111 1111
1的二进制为0000 0001
127与1相加后得1000 0000(-128)
为什么-128的补码是1000 0000?
答:将该负数取绝对值,再用二进制表示出这个绝对值 (不管符号位!) 对该二进制数进行取反加一操作就得到负数的补码了 (也就是求补操作!) -128 绝对值是 128 128的二进制表示为: 1000 0000 取反 0111 1111 加1 就是1000 0000 这就是-128的补码 这种办法算出的结果符合“规定值”
