計算機體系結構中補碼的目的是什麼?


補碼用於數字計算機中,以方便減法運算和邏輯運算。每種基數為 r 的系統都有兩種補碼方法:r 補碼和 (r - 1) 補碼。

(r - 1) 補碼

9 的補碼

給定一個在基數 r 中具有 n 位數字的數 N,N 的 (rn - 1) 補碼錶示為 (rn- 1) - N。對於十進位制數,r = 10 且 r - 1 = 9,因此 N 的 9 的補碼為 (10n - 1) - N。

現在,10n 定義了一個包含一個 1 後跟 n 個 0 的數字。10n – 1 是由 n 個 9 定義的數字。例如,當 n = 4 時,我們有 104 = 10000 且 104 - 1 = 9999。因此,十進位制數的 9 的補碼是透過從 9 中減去每個數字得到的。例如,546700 的 9 的補碼為 999999 - 546700 = 453299,12389 的 9 的補碼為 99999 - 12389 = 87610。

1 的補碼

對於二進位制數,r = 2 且 r - 1 = 1,因此 N 的 1 的補碼為 (2n - 1) - N。2n 由一個包含 1 後跟 n 個 0 的二進位制數描述。2n - 1 是由 n 個 1 定義的二進位制數。例如,當 n = 4 時,我們有 24 = (10000)2,且 24 - 1 = (1111)2。因此,二進位制數的 1 的補碼是透過從 1 中減去每個數字得到的。從 1 中減去二進位制數字會導致位從 0 變為 1 或從 1 變為 0。因此,二進位制數的 1 的補碼是透過將 1 變為 0,將 0 變為 1 來構造的。例如,1011001 的 1 的補碼為 0100110,0001111 的 1 的補碼為 1110000。

八進位制或十六進位制數的 (r - 1) 補碼分別透過從 7 或 F(十進位制 15)中減去每個數字獲得。

(r) 補碼

10 的補碼

基數 r 中 n 位數字數 N 的 r 補碼錶示為,當 N 不等於 0 時為 rn - N,當 N = 0 時為 0。與 (r - 1) 補碼相比,我們看到 r 補碼是透過在 (r - 1) 補碼中新增 1 得到的,因為 rn - N = [(rn - 1) - N] + 1。

因此,十進位制數 2389 的 10 的補碼為 7610 + 1 = 7611,它是透過在 9 的補碼值中新增 1 得到的。二進位制數 101100 的 2 的補碼為 010011 + 1 = 010100,它是透過在 1 的補碼值中新增 1 得到的。

2 的補碼

2 的補碼可以透過保持所有最低位的 0 和第一個 1 不變,然後將所有其他更高位的 1 變為 0,將 0 變為 1 來生成。1101100 的 2 的補碼為 0010100,它是透過保持兩個最低位的 0 和第一個 1 不變,然後將其他四個最高位的 1 變為 0,將 0 變為 1 來得到的。

更新時間: 2021 年 7 月 24 日

8K+ 次瀏覽

啟動您的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.