有符号和无符号二进制数

2025年3月17日 | 阅读 3 分钟

整数变量以有符号和无符号方式表示。正值和负值通过有符号数中的符号标志来区分。无符号数不使用任何符号标志,即无符号数只能存储正数。

在日常生活中表示正数和负数非常容易。我们表示正数时不在其前面添加任何符号,而表示负数时在其前面添加 -(负号)。但是在数字系统中,不可能在其前面使用负号,因为数字计算机中的数据是二进制形式。为了表示二进制数中的符号,我们需要一种特殊的表示法。

二进制数表示

我们的计算机只能理解(0, 1)语言。二进制数以两种方式表示,即有符号和无符号。正数以两种方式表示 - 有符号和无符号,但负数只能以有符号方式描述。无符号数和有符号数之间的区别在于,无符号数不使用任何符号位来标识正数和负数,但有符号数会使用。

Signed and Unsigned Binary Numbers

无符号数

正如我们已经知道的,无符号数没有任何符号来表示负数。所以无符号数总是正数。默认情况下,十进制数的表示是正数。我们总是假设每个十进制数字前面都有一个正号。

无符号二进制数中没有符号位,因此它只能表示其大小。在零和一中,零是无符号二进制数。在这种表示中只有一个零 (0),它始终为正数。由于无符号数表示中数字的唯一二进制等效形式,因此它被称为明确的表示技术。无符号二进制数的范围从 0 到 (2n-1)。

示例:用无符号二进制数表示十进制数 102。

我们将把这个十进制数变成二进制,它只有给定名称的大小。

十进制操作结果余数
102102/2510
5151/2251
2525/2121
1212/260
66/230
33/211
11/201

所以 (102)10 的二进制数是 (1100110)2,它是十进制数 102 的 7 位大小。

有符号数

有符号数有一个符号位,因此它可以区分正整数和负整数。有符号二进制数技术既有符号位,也有数字的大小。为了表示负十进制数,将在二进制数前面添加相应的符号。

有符号数以三种方式表示。该符号位使零有两种可能的表示形式(正 (0) 和负 (1)),这是一种模糊的表示形式。第三种表示是 2 的补码表示,其中零不可能有双重表示,这使其成为明确的表示形式。以下是有符号二进制数的表示类型

  1. 符号-幅度形式
    在这种形式中,二进制数有一个位作为符号。如果该位设置为 1,则该数字将为负数,否则如果设置为 0,则该数字将为正数。除了这个符号位之外,n-1 位代表数字的大小。
  2. 1's 补码
    通过反转一个数字的每一位,我们可以得到一个数字的 1 的补码。负数可以用 1 的补码形式表示。在这种形式中,二进制数也有一个额外的位用于符号表示,作为符号-幅度形式。
  3. 2's 补码
    通过反转一个数字的每一位并将其最低有效位加 1,我们可以得到一个数字的 2 的补码。负数也可以用 2 的补码形式表示。在这种形式中,二进制数也有一个额外的位用于符号表示,作为符号-幅度形式。

下一个主题1的补码