二进制数表示



我们可以将二进制数分为两类:无符号数有符号数。阅读本章以了解有符号和无符号二进制数是如何表示的。我们还将解释如何找到有符号二进制数的1的补码和2的补码形式。

无符号数

无符号数仅包含数字的幅度。它们没有任何符号。这意味着所有无符号二进制数都是正数。与十进制数系统一样,在数字前面放置正号是表示正数的可选操作。因此,如果数字前面没有指定正号,则包括零在内的所有正数都可以视为无符号数。

有符号数

有符号数包含数字的符号和幅度。通常,符号放在数字前面。因此,对于正数,我们必须考虑正号,对于负数,我们必须考虑负号。因此,如果数字前面指定了相应的符号,则所有数字都可以视为有符号数。

如果符号位为零,则表示二进制数为正。类似地,如果符号位为一,则表示二进制数为负。

无符号二进制数的表示

无符号二进制数中存在的位表示数字的幅度。这意味着,如果无符号二进制数包含“N”位,则所有N位都表示数字的幅度,因为它没有任何符号位。

示例

考虑十进制数108。该数字的二进制等效值为1101100。这是无符号二进制数的表示形式。

(108)10 = (1101100)2

它有7位。这7位表示数字108的幅度。

有符号二进制数的表示

有符号二进制数的最高有效位 (MSB) 用于指示数字的符号。因此,它也称为符号位。正号用在符号位中放置“0”来表示。类似地,负号用在符号位中放置“1”来表示。

如果有符号二进制数包含“N”位,则只有 (N-1) 位表示数字的幅度,因为一位 (MSB) 用于表示数字的符号。

有符号二进制数有三种表示类型

  • 符号幅度形式
  • 1的补码形式
  • 2的补码形式

这三种形式中正数的表示形式相同。但是,每种形式中负数的表示形式会有所不同。

考虑正十进制数+108。该数字幅度的二进制等效值为1101100。这7位表示数字108的幅度。由于它是正数,因此将符号位视为零,该符号位放置在幅度的最左侧。

(+108)10 = (01101100)2

因此,正十进制数+108的有符号二进制表示01101100。因此,对于正十进制数+108,在符号幅度形式、1的补码形式和2的补码形式中,相同的表示形式均有效。

符号幅度形式

在符号幅度形式中,MSB用于表示数字的符号,其余位表示数字的幅度。因此,只需在无符号二进制数的最左侧包含符号位。此表示形式类似于有符号十进制数的表示形式。

示例

考虑负十进制数-108。该数字的幅度为108。我们知道108的无符号二进制表示形式为1101100。它有7位。所有这些位都表示幅度。

由于给定的数字为负数,因此将符号位视为一,该符号位放置在幅度的最左侧。

(-108)10 = (11101100)2

因此,-108的符号幅度表示形式为11101100

1的补码形式

数字的1的补码是通过对有符号二进制数的所有位取反得到的。因此,正数的1的补码得到一个负数。类似地,负数的1的补码得到一个正数。

这意味着,如果您对包括符号位在内的二进制数执行两次1的补码运算,那么您将得到原始的有符号二进制数。

示例

考虑负十进制数-108。该数字的幅度为108。我们知道108的有符号二进制表示形式为01101100。

它有8位。该数字的MSB为零,表示正数。零的反码为一,反之亦然。因此,用一替换零,用零替换一,以获得负数。

(-108)10 = (10010011)2

因此,(108)10的1的补码(10010011)2

2的补码形式

二进制数的2的补码是通过在有符号二进制数的1的补码上加1得到的。因此,正数的2的补码得到一个负数。类似地,负数的2的补码得到一个正数。

这意味着,如果您对包括符号位在内的二进制数执行两次2的补码运算,那么您将得到原始的有符号二进制数。

示例

考虑负十进制数-108

我们知道(108)10的1的补码是(10010011)2

(108)10的2的补码 = (108)10的1的补码 + 1。

= 10010011 + 1

= 10010100

因此,(108)10的2的补码(10010100)2

广告