为什么byte最小是-128,而不是-127。int、long也是同样疑问

来源:3-1 Java中的整数类型

小黄人丶150

2020-05-09 15:40

为什么byte最小是-128,而不是-127。int、long也是同样疑问

写回答 关注

1回答

  • liujunjiede
    2020-05-25 22:30:50

    一个byte等于8个bit,表示的数值只有后面7位。正数原码,由于最高位只能是0,因此最大值为:0 111 1111,即因为,有一个特殊数字,0。0和-128的原码是一样的,都是1000 0000因为有符号,那么就因该有+0和-0也就是1000 0000和0000 0000。而且用补码进行计算的时候,是带符号位计算的,那么1000 0000谁能分清这是0还是-128?所以发明的时候就规定-0为-128。所以这就是为什么最小范围是 -128.

二进制与Java中的基本数据类型

从认识二进制开始,逐步理解Java是如何存储和处理数据的。

8073 学习 · 7 问题

查看课程

相似问题