📜  负二进制数的表示

📅  最后修改于: 2021-09-28 10:26:30             🧑  作者: Mango

由于二进制数的每个位置或位只能有 0 或 1 两个符号,因此不可能在二进制数前添加减号或加号符号。

我们在它们前面使用减号来表示负二进制数。在计算机数字表示中,这些数字可以借助在有符号数字的二进制数字表示系统中称为符号位或符号标志的额外位或标志来区分。这个额外的位称为符号位或符号标志,其符号位的值对于正数为 0,对于负二进制数为 1。

正数大小的表示很容易,不需要任何更改。

负数大小的表示相应地改变以表示它。

表示幅度的方法:
它们是:符号幅度方法、1 的补码方法和 2 的补码方法。下面使用示例来解释这些。

  1. 签名幅度方法:
    我们只添加一个额外的符号位来识别负数和正数。符号位的负数为 1,正数为 0。

    数字范围:
    对于 n 位寄存器,MSB 将是符号位,(n-1) 位将是幅度。然后,
    可以存储的负最小数是 -(2 (k-1) -1) ,可以存储的正最大数是 (2 (k-1) -1) 。

    但是,这个(符号)表示有一个数字 0 的歧义表示。这意味着 0 有两种不同的表示,一个是 -0(例如,六位寄存器中的 1 00000),第二个是 +0(例如,六位寄存器中的 0 00000 )。

  2. 1的补码方法:
    请注意,MSB 始终是符号位,如果为 0,则没有变化。在负数的情况下,MSB 始终为 1。我们只取负数的 1 的补码在计算机中表示。

    数字范围:
    对于 n 位寄存器,可存储的负最小数为 -(2 (n-1) -1) ,可存储的正最大数为 (2 (n-1) -1) 。

    但是,这个(符号)表示对数字 0 有一个模糊的表示。这意味着 0 有两种不同的表示,一个是 -0(例如,五位寄存器中的 1 1111),第二个是 +0(例如,五位寄存器中的 0 0000 )。

  3. 2的补码方法:
    请注意,MSB 始终是符号位,如果为 0,则没有变化。在负数的情况下,MSB 始终为 1。我们只取负数的 2 的补码在计算机中表示。

    因为,+0和-0只有一种表示,所以这个2的补码表示优于符号表示和1的补码表示。

    数字范围:
    对于 n 位寄存器,可存储的负最小数为 -(2 (n-1) ) ,可存储的正最大数为 (2 (n-1) -1) 。