二進位制數表示



我們可以將二進位制數分為兩類:無符號數有符號數。閱讀本章以瞭解有符號和無符號二進位制數是如何表示的。我們還將解釋如何找到有符號二進位制數的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

廣告