原理:在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的补码
这种办法算出的结果符合“规定值”