带符号二进制整数


带符号整数是有“+”或“-”符号的数字。如果使用n位来表示带符号二进制整数,则n位中,1位用于表示数字的符号,其余(n-1)位用于表示数字本身的数值部分。

一个现实世界的例子是世界各地不同城市的温度列表(精确到最接近的数字)。显然,它们是带符号整数,例如+34、-15、-23和+17。这些数字及其符号必须仅使用二进制表示或位在计算机中表示。

在计算机中表示带符号数字的方法有很多:

  • 符号位和数值位

  • 反码

  • 补码

表示带符号数字最简单的方法是符号位和数值位(SM)方法。

**符号位和数值位** - 符号位和数值位二进制格式是最简单的概念格式。在这种表示带符号数字的方法中,最高有效位 (MSD) 具有额外的含义。

  • 如果MSD为0,我们可以像处理任何普通的无符号整数一样计算该数字。我们也将其视为正数。

  • 如果MSD为1,则表示该数字为负数。

    其他位表示数字的数值(绝对值)。以下是一些带符号十进制数字及其在SM表示法中的等效值,假设字长为4位。


带符号十进制
符号位和数值位
     +6
   0110
     -6
   1110
     +0
   0000
     -0
   1000
     +7
    0111
     -7
   1111


范围

从上表可以看出,如果字长为n位,则可以表示的数字范围是从-(2n-1 -1)到+(2n-1 -1)。下表显示了字长和可以表示的SM数字的范围。

字长
SM数字范围
4
-7 到 +7
8
-127 到 +127
16
-32767 到 +32767
32
-2147483647 到 +2147483647

请注意,位序列1101对应于无符号数13,以及SM表示法中的-5。其值仅取决于用户或程序员如何解释位序列。

**反码** - 这是在计算机中表示带符号整数的方法之一。在这种方法中,最高有效位 (MSD) 具有额外的含义。

  • 如果MSD为0,我们可以像解释任何普通的无符号整数一样计算该数字。
  • 如果MSD为1,则表示该数字为负数。

其他位表示数字的数值(绝对值)。

如果数字为负数,则其他位表示数字数值的反码。

下表显示了一些带符号十进制数字及其在反码表示法中的等效值,假设字长为4位。

带符号十进制
反码
     +6
   0110
     -6
   1001
    +0
   0000
     -0
   1111
    +7
   0111
     -7
   1000


范围

从上表可以看出,如果字长为n位,则可以表示的数字范围是从-(2n-1- 1)到+(2n-1 -1)。下表显示了字长和可以表示的反码数字的范围。

字长
反码数字范围
4
-7 到 +7
8
-127 到 +127
16
-32767 到 +32767
32
-2147483647 到 +2147483647 ±2 × 10+9 (约)


更新于:2020年6月27日

9K+ 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告
© . All rights reserved.