负二进制数
在用于表示带符号数的二进制数表示系统中,可以使用额外的位或标志(称为符号位或符号标志)来区分负数。由于二进制数的每一位只能是 0 或 1,因此无法在二进制数前面添加减号或加号。这就是我们使用这个额外的位,即符号位或符号标志的原因。负二进制数的符号位值为 1,正数的符号位值为 0。
当整数二进制数为正数时,符号用 0 表示,大小用正二进制数表示。当数为负数时,符号用 1 表示,但其余部分可以用三种可能的方式之一表示:符号大小法、反码法和补码法。这些方法解释如下。
1. 符号大小法
在这种方法中,数字分为两部分:符号位和大小。如果数字为正,则符号位为 0;如果数字为负,则符号位为 1。大小用待表示数字的二进制形式表示。
示例:假设我们使用 5 位寄存器。-5 到 +5 的表示如下所示
数值范围:对于 k 位寄存器,MSB 为符号位,(k-1) 位为大小。可以存储的最大正数为 (2(k-1)-1),可以存储的最小负数为 -(2(k-1)-1)。
注意该系统的一个缺点是 0 有两种不同的表示:-0(例如,在五位寄存器中为 1 0000)和 +0(例如,在五位寄存器中为 0 0000)。
2. 反码法
正数的表示方式与符号大小法相同。如果数字为负,则使用反码表示。首先用正号表示该数,然后取该数的反码。
示例:假设我们使用 5 位寄存器。-5 和 +5 的表示如下所示
+5 的表示方式与符号大小法相同。-5 的表示步骤如下:
(i) +5 = 0 0101
(ii) 取 0 0101 的反码,即 1 1010。MSB 为 1,表示该数为负数。
负数的 MSB 始终为 1。
数值范围:对于 k 位寄存器,可以存储的最大正数为 (2(k-1)-1),可以存储的最小负数为 -(2(k-1)-1)。
注意该系统的一个缺点是 0 有两种不同的表示:-0(例如,在五位寄存器中为 1 1111)和 +0(例如,在五位寄存器中为 0 0000)。
3. 补码法:正数的表示方式与符号大小法相同。如果数字为负,则使用补码表示。首先用正号表示该数,然后取该数的补码。
示例:假设我们使用 5 位寄存器。-5 和 +5 的表示如下所示
+5 的表示方式与符号大小法相同。-5 的表示步骤如下:
(i) +5 = 0 0101
(ii) 取 0 0101 的补码,即 1 1011。MSB 为 1,表示该数为负数。
负数的 MSB 始终为 1。
数值范围:对于 k 位寄存器,可以存储的最大正数为 (2(k-1)-1),可以存储的最小负数为 -(2(k-1))。
优点在于该系统对 -0 和 +0 只有一个表示。在补码表示中,零 (0) 始终被视为正数(符号位为 0)。因此,它具有唯一或明确的表示。
这些是带符号二进制数的表示方法。