java 中byte的取值范围

众所周知,java中byte的取值范围 -128~127,那么为什么呢?

java 中二进制是采用补码运算的 ,其中最高位 0代表正数 1代表负数。

正数的原码,反码,补码 相同,负数补码 = 反码 +1 。

举例:-10

原码:10001010

反码:11110101

补码:11110110

补码的补码就可得原码

一字节byte占8bit位。

那么正数范围为 0 0000000~0 1111111,对应的int取值范围为0~127;

负数的范围1 0000000~1 1111111,反码:1 1111111~ 10000000  反码+1:110000000~10000001, 对应的取值范围为-128 ~-1;

所以byte取值范围为 -128~127

 

posted @ 2024-06-03 18:28  山阴路的秋天  阅读(11)  评论(0编辑  收藏  举报