Java基本数据类型(强制转换数据溢出情况)

强制转换数据溢出情况

     举例: int转byte

        int exampleB2 = 129;   //129往前移两位得-127
        System.out.println((byte)exampleB2);  //-127
        int exampleB3 = -129;   //-129往前移一位得127
        System.out.println((byte)exampleB3);  //127
        int exampleB4 = 256;   //256往前移(256-127=129)位,即0
        System.out.println((byte)exampleB4);  //0

   分析:

    想象这个范围是在数轴上一直连续的区间

     Java基本数据类型(强制转换数据溢出情况)

 

    以中间这个区间为起始区间,当int = 129时,超出了区间(129-127 = 2)位,在对应的连续区间里的位置是第二位,第一位是-128,第二位是-127,所以此时强制转换打印的值是-127,而不是129

    Java基本数据类型(强制转换数据溢出情况)

 

    以中间这个区间为起始区间,当int = -129时,超出了区间(-128 - (-129) = 1)位,在对应的连续区间里的位置是第一位,数一位,第一位是127,所以此时强制转换打印的值是127,而不是129

    Java基本数据类型(强制转换数据溢出情况)

上一篇:Morris遍历


下一篇:129. Sum Root to Leaf Numbers