Java中的自增自减以及byte b = 127++

xiaoxiao2021-02-28  40

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

转载请注明原文地址: https://www.6miu.com/read-2628324.html

最新回复(0)