为什么(byte)128等于-128 财富值29

2016-10-14 11:15发布

    System.out.println((byte) 128);//-128 
3条回答
段曼 - 我很好
2016-10-14 11:52

是因为java的自动转型导致的,原理如下:
1、 128为int整数32位,前24为全部为0 后8位是1000 0000
2、(byte)128 转型为byte后首位是1,java认为是负数的补码标识
4、所以输出的为-128

一周热门 更多>