计算机中负数的范围为什么是-1~-128

在计算机中,以 8 位二进制数为例,负数的范围通常是 - 1~-128,这主要与计算机中数的表示方法 —— 补码有关,以下是具体解释:

  • 原码、反码和补码的概念
    • 原码:是最简单的机器数表示法,最高位为符号位,0 表示正数,1 表示负数,其余位表示数值的绝对值。比如 8 位二进制原码表示的 + 5 是 00000101,-5 是 10000101。
    • 反码:对于负数,其反码是在原码的基础上,符号位不变,其余位按位取反。例如,-5 的原码是 10000101,其反码就是 11111010。正数的反码与原码相同。
    • 补码:在计算机中,负数通常用补码形式存储和运算。正数的补码与原码相同,负数的补码是其反码加 1。例如,-5 的反码是 11111010,补码就是 11111011。
  • 补码表示范围的计算
    • 在 8 位二进制补码中,最高位为符号位,其余 7 位表示数值。能表示的正数范围是 00000000(表示 0)到 01111111(表示 127)。
    • 对于负数,补码 10000000 到 11111111 表示的数值范围是 - 128 到 - 1。其中,10000000 被规定为 - 128 的补码,这是因为从补码运算的角度来看,10000000 按补码规则计算其真值就是 - 128。而 11111111 是 - 1 的补码,因为 - 1 的原码是 10000001,反码是 11111110,补码就是 11111111。

综上所述,在 8 位二进制补码表示中,负数的范围是 - 128 到 - 1。同理,在其他位数的二进制补码表示中,负数的范围会根据位数的不同而有所变化。