
- 數位電子技術教程
- 數位電子技術 - 首頁
- 數位電子技術基礎
- 數字系統型別
- 訊號型別
- 邏輯電平和脈衝波形
- 數字系統元件
- 數字邏輯運算
- 數字系統優勢
- 數制
- 數制
- 二進位制數表示
- 二進位制運算
- 帶符號二進位制運算
- 八進位制運算
- 十六進位制運算
- 補碼運算
- 進位制轉換
- 進位制轉換
- 二進位制轉十進位制
- 十進位制轉二進位制
- 二進位制轉八進位制
- 八進位制轉二進位制
- 八進位制轉十進位制
- 十進位制轉八進位制
- 十六進位制轉二進位制
- 二進位制轉十六進位制
- 十六進位制轉十進位制
- 十進位制轉十六進位制
- 八進位制轉十六進位制
- 十六進位制轉八進位制
- 二進位制編碼
- 二進位制編碼
- 8421 BCD碼
- 餘三碼
- 格雷碼
- ASCII碼
- EBCDIC碼
- 編碼轉換
- 差錯檢測與糾正碼
- 邏輯閘
- 邏輯閘
- 與門
- 或門
- 非門
- 通用門
- 異或門
- 異或非門
- CMOS邏輯閘
- 用二極體電阻邏輯實現的或門
- 與門與或門的比較
- 兩級邏輯實現
- 閾值邏輯
- 布林代數
- 布林代數
- 布林代數定律
- 布林函式
- 德摩根定理
- 標準與或式和標準或與式
- 標準或與式轉為標準或與式
- 化簡技術
- 卡諾圖化簡法
- 三變數卡諾圖
- 四變數卡諾圖
- 五變數卡諾圖
- 六變數卡諾圖
- 無關項
- 奎因-麥克斯拉斯基法
- 最小項和最大項
- 規範式和標準式
- 最大項表示
- 利用布林代數化簡
- 組合邏輯電路
- 數字組合電路
- 數字運算電路
- 多路選擇器
- 多路選擇器設計步驟
- 多路選擇器通用門
- 使用4:1多路選擇器的2變數函式
- 使用8:1多路選擇器的3變數函式
- 多路分配器
- 多路選擇器與多路分配器的比較
- 奇偶校驗位發生器和校驗器
- 比較器
- 編碼器
- 鍵盤編碼器
- 優先編碼器
- 譯碼器
- 算術邏輯單元
- 7段LED顯示器
- 程式碼轉換器
- 程式碼轉換器
- 二進位制轉十進位制轉換器
- 十進位制轉BCD轉換器
- BCD轉十進位制轉換器
- 二進位制轉格雷碼轉換器
- 格雷碼轉二進位制轉換器
- BCD轉餘三碼轉換器
- 餘三碼轉BCD轉換器
- 加法器
- 半加器
- 全加器
- 序列加法器
- 並行加法器
- 用半加器實現的全加器
- 半加器與全加器的比較
- 用與非門實現的全加器
- 用與非門實現的半加器
- 二進位制加法/減法器
- 減法器
- 半減器
- 全減器
- 並行減法器
- 用兩個半減器實現的全減器
- 用與非門實現的半減器
- 時序邏輯電路
- 數字時序電路
- 時鐘訊號和觸發
- 鎖存器
- 移位暫存器
- 移位暫存器應用
- 二進位制暫存器
- 雙向移位暫存器
- 計數器
- 二進位制計數器
- 非二進位制計數器
- 同步計數器設計
- 同步計數器與非同步計數器的比較
- 有限狀態機
- 演算法狀態機
- 觸發器
- 觸發器
- 觸發器轉換
- D觸發器
- JK觸發器
- T觸發器
- SR觸發器
- 帶時鐘SR觸發器
- 無時鐘SR觸發器
- 帶時鐘JK觸發器
- JK觸發器轉T觸發器
- SR觸發器轉JK觸發器
- 觸發方式:觸發器
- 邊沿觸發觸發器
- 主從JK觸發器
- 競爭冒險現象
- A/D和D/A轉換器
- 模數轉換器
- 數模轉換器
- 數模轉換器和模數轉換器積體電路
- 邏輯閘的實現
- 用與非門實現非門
- 用與非門實現或門
- 用與非門實現與門
- 用與非門實現或非門
- 用與非門實現異或門
- 用與非門實現異或非門
- 用或非門實現非門
- 用或非門實現或門
- 用或非門實現與門
- 用或非門實現與非門
- 用或非門實現異或門
- 用或非門實現異或非門
- 使用CMOS的與非/或非門
- 用與非門實現的全減器
- 使用2:1多路選擇器的與門
- 使用2:1多路選擇器的或門
- 使用2:1多路選擇器的非門
- 儲存器件
- 儲存器件
- RAM和ROM
- 快取記憶體設計
- 可程式設計邏輯器件
- 可程式設計邏輯器件
- 可程式設計邏輯陣列
- 可程式設計陣列邏輯
- 現場可程式設計門陣列
- 數位電子技術系列
- 數位電子技術系列
- CPU架構
- CPU架構
- 數位電子技術資源
- 數位電子技術 - 快速指南
- 數位電子技術 - 資源
- 數位電子技術 - 討論
數位電子技術 - 補碼運算
補碼運算是在數位電子技術領域使用的一套數學技術,主要用於執行各種算術運算,特別是減法。
在這裡,我們將介紹數字系統中最常用的幾種補碼型別:
- 9的補碼
- 10的補碼
- 1的補碼
- 2的補碼
- 7的補碼
- 8的補碼
- 15的補碼
- 16的補碼
讓我們詳細討論這些補碼及其在算術運算中的應用。
什麼是9的補碼?
在數位電子技術中,9的補碼是一種用於在數字系統中執行十進位制數減法的補碼。因此,9的補碼與十進位制數系統相關。
- 9的補碼用於執行減法,因為它簡化了減法運算。
- 給定十進位制數的9的補碼是透過從該數的每一位數字中減去9來找到的。
下表顯示了每個十進位制數字的9的補碼:
十進位制數字 | 9的補碼 |
---|---|
0 | 9 – 0 = 9 |
1 | 9 – 1 = 8 |
2 | 9 – 2 = 7 |
3 | 9 – 3 = 6 |
4 | 9 – 4 = 5 |
5 | 9 – 5 = 4 |
6 | 9 – 6 = 3 |
7 | 9 – 7 = 2 |
8 | 9 – 8 = 1 |
9 | 9 – 9 = 0 |
讓我們透過例子來理解它。
例1
求十進位制數7824.450的9的補碼。
解答
以下是求給定十進位制數的9的補碼的分步過程:
- 7的9的補碼 = 9 – 7 = 2
- 8的9的補碼 = 9 – 8 = 1
- 2的9的補碼 = 9 – 2 = 7
- 4的9的補碼 = 9 – 4 = 5
- 4的9的補碼 = 9 – 4 = 5
- 4的9的補碼 = 9 – 4 = 5
- 0的9的補碼 = 9 – 0 = 9
因此,十進位制數7824.450的9的補碼是2175.549。
例2
求45608的9的補碼。
解答
十進位制數45608的9的補碼如下:
- 4的9的補碼 = 9 – 4 = 5。
- 5的9的補碼 = 9 – 5 = 4。
- 6的9的補碼 = 9 – 6 = 3。
- 0的9的補碼 = 9 – 0 = 9。
- 8的9的補碼 = 9 – 8 = 1。
因此,45608的9的補碼是54391。
什麼是10的補碼?
在數位電子技術中,10的補碼是另一種用於執行十進位制數減法的補碼。同樣,10的補碼的目的是簡化十進位制減法運算。
有兩種方法可以找到十進位制數的10的補碼:
方法一 - 要找到給定十進位制數的10的補碼,首先我們透過從該數的每一位數字中減去9來找到9的補碼。然後,我們將1加到9的補碼上以獲得10的補碼,即:
10的補碼 = 9的補碼 + 1
使用此方法,每個十進位制數字的10的補碼在下面的表格中給出:
十進位制數字 | 9的補碼 |
---|---|
0 | 9 – 0 = 9 + 1 = 10 = 0(忽略進位) |
1 | 9 – 1 = 8 + 1 = 9 |
2 | 9 – 2 = 7 + 1 = 8 |
3 | 9 – 3 = 6 + 1 = 7 |
4 | 9 – 4 = 5 + 1 = 6 |
5 | 9 – 5 = 4 + 1 = 5 |
6 | 9 – 6 = 3 + 1 = 4 |
7 | 9 – 7 = 2 + 1 = 3 |
8 | 9 – 8 = 1 + 1 = 2 |
9 | 9 – 9 = 0 + 1 = 1 |
方法二 - 在這種方法中,我們可以使用以下公式來找到給定十進位制數的10的補碼:
10的補碼 = 10N – 數
其中,N是十進位制數的位數。
讓我們透過例子來理解尋找10的補碼的過程。
例1
求十進位制數4872的10的補碼。
解答
4872的10的補碼可以確定如下:
求4872的9的補碼:
9999 – 4872 = 5127
將1加到9的補碼上以獲得10的補碼:
5127 + 1 = 5128
5127 + 1 = 5128
例2
所以,4872的10的補碼是5128。
解答
求2478.98的10的補碼。
2478.98的10的補碼可以如下找到:
求2478.98的9的補碼:
將1加到9的補碼上以獲得10的補碼:
7521.01 + 1 = 7521.02
9999.99 – 2478.98 = 7521.01
然後,10的補碼為:
7521.01 + 1 = 7521.02
解答
因此,7521.01的10的補碼是7521.02。
例3
求58942的10的補碼。
58942的10的補碼如下:
58942的10的補碼 = 105 – 58942
58942的10的補碼 = 100000 – 58942 = 41058
因此,58942的10的補碼是41058。
什麼是1的補碼?
在數位電子技術中,1的補碼是一種用於簡化二進位制數減法的補碼。此外,1的補碼還用於表示給定二進位制數的負數。
我們可以透過將數字中的所有0更改為1,並將所有1更改為0來找到二進位制數的1的補碼。
例1
我們還可以透過從1中減去數字的每一位來找到二進位制數的1的補碼。
解答
但是,1的補碼存在一個主要問題,即它對0有兩種表示。其中,00000000表示正零,其1的補碼是11111111,表示0,但這稱為負零。
讓我們考慮一些例子來理解尋找二進位制數的1的補碼的過程。
- 求101101的1的補碼。
- 101101的1的補碼可以如下獲得:
- 求101101的1的補碼。
- 求101101的1的補碼。
- 101101的1的補碼可以如下獲得:
- 求101101的1的補碼。
方法一 - 反轉每一位:
1的1的補碼 = 0
0的1的補碼 = 1
例2
因此,101101的1的補碼是010010。
解答
方法二 - 從1中減去每一位:
111111 – 101101 = 010010
因此,101101的1的補碼是010010。
求101101101的1的補碼。
給定二進位制數的1的補碼為:
1的補碼 = 111111111 – 101101101 = 010010010
方法一 − 求取反碼再加 1,即:
二進位制補碼 = 反碼 + 1
方法二 − 從 2N 中減去給定的二進位制數,即:
二進位制補碼 = 2N – 數值
其中,“N”是數字的位數。
方法三 − 從最低有效位 (LSB) 開始,複製到遇到的第一個 1 位(包含該位),然後對剩餘位取反。
讓我們透過示例瞭解求二進位制數的二進位制補碼的過程。
例1
求 1100111 的二進位制補碼。
解答
我們可以按如下方式求 1100111 的二進位制補碼:
方法一 − 使用反碼:
1100111 的反碼 = 0011000
將 1 加到反碼上得到二進位制補碼:
0011000 + 1 = 0011001
方法二 − 使用二進位制補碼公式:
二進位制補碼 = 27 – 1100111 = 128 – 1100111
二進位制補碼 = 10000000 – 1100111 = 0011001
方法三 − 從 LSB 開始複製位到第一個 1 位:

例2
求 11001100 的二進位制補碼。
解答
11001100 的二進位制補碼可以按如下方式獲得:
方法一 − 使用反碼:
11001100 的反碼 = 00110011
二進位制補碼 = 反碼 + 1
二進位制補碼 = 00110011 + 1
因此,
二進位制補碼 = 00110100
方法二 − 從 2N 中減去該數:
二進位制補碼 = 28 - 11001100
二進位制補碼 = 100000000 – 11001100 = 00110100
方法三 − 複製到第一個 1 位的位:

什麼是七進位制補碼?
在數位電子學中,七進位制補碼是一個用於簡化八進位制減法的概念。給定八進位制數的七進位制補碼可以透過從該數的每一位上減去 7 來獲得。
下表列出了每個八進位制位的七進位制補碼:
八進位制位 | 7的補碼 |
---|---|
0 | 7 – 0 = 7 |
1 | 7 – 1 = 6 |
2 | 7 – 2 = 5 |
3 | 7 – 3 = 4 |
4 | 7 – 4 = 3 |
5 | 7 – 5 = 2 |
6 | 7 – 6 = 1 |
7 | 7 – 7 = 0 |
讓我們考慮一些例子來理解求八進位制數的七進位制補碼的過程。
例1
求八進位制數 3152 的七進位制補碼。
解答
3152 的七進位制補碼可以按如下方式獲得:
- 3 的七進位制補碼 = 7 – 3 = 4。
- 1 的七進位制補碼 = 7 – 1 = 6。
- 5 的七進位制補碼 = 7 – 5 = 2。
- 2 的七進位制補碼 = 7 – 2 = 5。
因此,3152 的七進位制補碼是 4625。
例2
求八進位制數 427102 的七進位制補碼。
解答
給定數字的七進位制補碼確定如下:
777777 – 427102 = 350675
因此,427102 的七進位制補碼是 350675。
什麼是八進位制補碼?
八進位制補碼是另一種用於簡化八進位制減法的補碼概念。實際上,它類似於十進位制數系統中的十進位制補碼。
我們可以按如下方式求給定八進位制數的八進位制補碼:
- 透過從 7 中減去該數的每一位來求給定八進位制數的七進位制補碼。
- 將 1 加到七進位制補碼上。
- 結果將是給定八進位制數的八進位制補碼。
因此,
八進位制補碼 = 七進位制補碼 + 1
下表顯示了每個八進位制位的八進位制補碼:
八進位制位 | 8的補碼 |
---|---|
0 | 7 – 0 = 7 + 1 = 10 = 0(忽略進位) |
1 | 7 – 1 = 6 + 1 = 7 |
2 | 7 – 2 = 5 + 1 = 6 |
3 | 7 – 3 = 4 + 1 = 5 |
4 | 7 – 4 = 3 + 1 = 4 |
5 | 7 – 5 = 2 + 1 = 3 |
6 | 7 – 6 = 1 + 1 = 2 |
7 | 7 – 7 = 0 + 1 = 1 |
讓我們透過示例瞭解求八進位制補碼的過程。
例1
求 4257 的八進位制補碼。
解答
4257 的八進位制補碼可以按如下方式求得:
4257 的七進位制補碼 = 7777 – 4257 = 3520
八進位制補碼 = 七進位制補碼 + 1
八進位制補碼 = 3520 + 1 = 3521
因此,4257 的八進位制補碼是 3521。
例2
求 77201 的八進位制補碼。
解答
給定八進位制數的八進位制補碼可以按如下方式確定:
77201 的七進位制補碼 = 77777 – 77201 = 00576
八進位制補碼 = 七進位制補碼 + 1
八進位制補碼 = 00576 + 1 = 00577
因此,77201 的八進位制補碼是 00577。
什麼是十五進位制補碼?
在十六進位制數系統中,十五進位制補碼是一種用於簡化十六進位制數減法運算的補碼概念。十五進位制補碼類似於十進位制數系統中的九進位制補碼。
要找到給定十六進位制數的十五進位制補碼,我們將該數的每一位從 15 (F) 中減去。
下表列出了每個十六進位制位的十五進位制補碼:
十六進位制位 | 15的補碼 |
---|---|
0 | F – 0 = F |
1 | F – 1 = E |
2 | F – 2 = D |
3 | F – 3 = C |
4 | F – 4 = B |
5 | F – 5 = A |
6 | F – 6 = 9 |
7 | F – 7 = 8 |
8 | F – 8 = 7 |
9 | F – 9 = 6 |
A | F – A = 5 |
B | F – B = 4 |
C | F – C = 3 |
D | F – D = 2 |
E | F – E = 1 |
F | F – F = 0 |
以下示例演示了求十六進位制數的十五進位制補碼的過程。
例1
求十六進位制數 A259C 的十五進位制補碼。
解答
A259C 的十五進位制補碼可以按如下方式獲得:
- A 的十五進位制補碼 = F – A = 5。
- 2 的十五進位制補碼 = F – 2 = D。
- 5 的十五進位制補碼 = F – 5 = A。
- 9 的十五進位制補碼 = F – 9 = 6。
- C 的十五進位制補碼 = F – C = 3。
因此,A259C 的十五進位制補碼是 5DA63。
例2
求 1BCFA 的十五進位制補碼。
解答
給定十六進位制數的十五進位制補碼為:
FFFFF – 1BCFA = E4305
因此,十六進位制數 1BCFA 的十五進位制補碼是 E4305。
什麼是十六進位制補碼?
在十六進位制算術中,我們還可以確定給定十六進位制數的十六進位制補碼。十六進位制補碼是一個用於簡化十六進位制數減法運算的概念。
我們可以按如下所述確定給定十六進位制數的十六進位制補碼:
- 求給定十六進位制數的十五進位制補碼。
- 將 1 加到獲得的十五進位制補碼上。這將給出十六進位制數的十六進位制補碼。
因此,
十六進位制補碼 = 十五進位制補碼 + 1
下表列出了每個十六進位制位的十六進位制補碼:
十六進位制位 | 15的補碼 |
---|---|
0 | F – 0 = F + 1 = 10 = 0(忽略進位) |
1 | F – 1 = E + 1 = F |
2 | F – 2 = D + 1 = E |
3 | F – 3 = C + 1 = D |
4 | F – 4 = B + 1 = C |
5 | F – 5 = A + 1 = B |
6 | F – 6 = 9 + 1 = A |
7 | F – 7 = 8 + 1 = 9 |
8 | F – 8 = 7 + 1 = 8 |
9 | F – 9 = 6 + 1 = 7 |
A | F – A = 5 + 1 = 6 |
B | F – B = 4 + 1 = 5 |
C | F – C = 3 + 1 = 4 |
D | F – D = 2 + 1 = 3 |
E | F – E = 1 + 1 = 2 |
F | F – F = 0 + 1 = 1 |
讓我們舉一些例子來理解求十六進位制數的十六進位制補碼的過程。
例1
求 1ABDF7 的十六進位制補碼。
解答
給定十六進位制數的十六進位制補碼可以按如下方式確定:
1ABDF7 的十五進位制補碼 = FFFFFF – 1ABDF7 = E54208
十六進位制補碼 = 十五進位制補碼 + 1
十六進位制補碼 = E54208 + 1 = E54209
因此,1ABDF7 的十六進位制補碼是 E54209。
例2
求 ABC 的十六進位制補碼。
解答
ABC 的十六進位制補碼為:
ABC 的十五進位制補碼 = FFF – ABC = 543
十六進位制補碼 = 十五進位制補碼 + 1
十六進位制補碼 = 543 + 1 = 544
因此,ABC 的十六進位制補碼是 544。
這就是數位電子學中使用的各種補碼的全部內容。
現在,讓我們看看它們在執行減法運算中的應用。
使用九進位制補碼進行減法
九進位制補碼可用於執行十進位制數的減法。在這種方法中,兩個十進位制數的差值是透過將減數的九進位制補碼加到被減數中獲得的。
讓我們透過一個例子來了解使用九進位制補碼進行減法。
例1
從 (729)10 中減去 (517)10。
解答
在這個例子中,我們有:
被減數 = 729
減數 = 517
求 517 的九進位制補碼,我們得到
999 – 517 = 482
現在,將 729 和 482 相加以獲得 729 和 517 的差值,我們得到:
729 + 482 = 1211
存在一個首位進位,表明結果為正數,透過將首位進位加到中間結果的最低有效位來獲得最終結果,即:
211 + 1 = 212
因此,729 和 517 的差值為 212。
例2
使用九進位制補碼方法從 (159)10 中減去 (203)10。
解答
在這個例子中,
被減數 = 159
減數 = 203
取 203 的九進位制補碼,我們得到:
999 – 203 = 796
159 + 796 = 955
159 + 796 = 955
沒有首位進位。因此,最終結果為負數,透過取 955 的九進位制補碼來獲得,即:
999 – 955 = 44
因此,159 – 203 = –44。
使用10的補碼進行減法
我們也可以使用10的補碼進行十進位制減法。下面給出使用10的補碼進行十進位制減法的步驟:
- 步驟1 − 考慮十進位制減法 X – Y。其中,X是被減數,Y是減數。
- 步驟2 − 求Y的10的補碼。
- 步驟3 − 將X和Y的10的補碼相加。
- 步驟4 − 如果存在環繞進位,則結果為正數,最終結果透過丟棄進位獲得。如果沒有環繞進位,則表示結果為負數,透過對中間結果取10的補碼並在其前面加上負號來獲得。
讓我們透過例子來了解使用10的補碼進行十進位制減法。
例1
使用10的補碼算術,從(875)10中減去(599)10。
解答
在這個例子中,我們有:
被減數 = 875
減數 = 599
求599的10的補碼,我們得到:
599的10的補碼 = 9的補碼 + 1
因此,
599的10的補碼 = (999 – 599) + 1 = 401
將875和401相加,我們得到:
875 + 401 = 1276
存在環繞進位,表明結果為正數,並且透過丟棄進位獲得。
因此,875和599的差是276。
例2
使用10的補碼算術,從(279)10中減去(307)10。
解答
我們有:
被減數 = 279
減數 = 307
取307的10的補碼,我們得到:
307的10的補碼 = (999 – 307) + 1 = 693
將279和693相加,我們得到:
279 + 693 = 972
沒有環繞進位,表明結果為負數。最終結果透過取972的10的補碼獲得,即:
972的10的補碼 = (999 - 972) + 1 = 28
因此,最終結果是–28。
使用1的補碼進行減法
1的補碼用於二進位制減法運算。
兩個二進位制數(例如X和Y),即X – Y的減法,可以使用1的補碼根據以下步驟執行:
- 步驟1 − 求減數(Y)的1的補碼。
- 步驟2 − 將X和Y的1的補碼相加。
- 步驟3 − 如果存在環繞進位,則表示結果為正數,最終結果透過將環繞進位加到中間結果的最低有效位 (LSB) 來獲得。如果沒有環繞進位,則結果為負數,透過取中間結果的1的補碼並在其前面加上負號來獲得。
考慮以下示例,以瞭解使用1的補碼算術進行二進位制減法。
例1
使用1的補碼,從(1011)2中減去(111)2。
解答
在這個例子中,我們有:
被減數 = 1011
減數 = 0111
求減數的1的補碼:
0111的1的補碼 = 1000
將1011和1000相加,我們得到:
1011 + 1000 = 1 0011
存在環繞進位,表明結果為正數。最終結果透過將此環繞進位加到中間結果(0011)的LSB來獲得,即:
0011 + 1 = 0100
因此,1011和111的二進位制差是100。
例2
使用1的補碼算術,從(111)2中減去(1100)2。
解答
給出:
被減數 = 0111
減數 = 1100
求減數的1的補碼:
1100的1的補碼 = 0011
將0111和0011相加,我們得到:
0111 + 0011 = 1010
沒有環繞進位,表明結果為負數,透過取1010的1的補碼獲得,即:
1010的1的補碼 = 0101
因此,111和1100的二進位制差是-101。
使用2的補碼進行減法
2的補碼也用於使用數字系統執行二進位制減法運算。使用2的補碼執行兩個二進位制數(例如X和Y),即(X – Y)的減法的步驟如下:
- 步驟1 − 求減數(Y)的2的補碼。
- 步驟2 − 將X和Y的2的補碼相加。
- 步驟3 − 如果存在環繞進位,則表示結果為正數,最終結果透過忽略環繞進位獲得。如果沒有環繞進位,則結果為負數,透過取中間結果的2的補碼並在其前面加上負號來獲得。
讓我們看一些例子來了解使用2的補碼算術進行二進位制減法。
例1
使用2的補碼算術,從(1100)2中減去(101)2。
解答
在這個例子中,給出:
被減數 = 1100
減數 = 0101
取減數的2的補碼,我們得到:
0101的2的補碼 = (1111 - 0101) + 1 = 1011
將1100和1011相加,我們得到:
1100 + 1011 = 1 0111
存在環繞進位,表明結果為正數,最終結果透過忽略此環繞進位獲得。
因此,1100和101的二進位制差是111。
例2
使用2的補碼算術,從(0110)2中減去(1010)2。
解答
給定的數字是:
被減數 = 0110
減數 = 1010
取減數的2的補碼,我們得到:
1010的2的補碼 = (1111 - 1010) + 1 = 0110
將被減數和減數的2的補碼相加,我們得到:
0110 + 0110 = 1100
由於沒有環繞進位,表明結果為負數。最終結果透過取中間結果的2的補碼獲得,即:
1100的2的補碼 = (1111 - 1100) + 1 = 0100
因此,0110和1010的二進位制差是-100。
使用7的補碼進行減法
7的補碼算術可用於執行八進位制數的減法。以下是使用7的補碼執行八進位制減法的步驟。
如果我們要從X中減去八進位制數Y,即X – Y,則
- 步驟1 − 求減數(Y)的7的補碼。
- 步驟2 − 將X和Y的7的補碼相加。
- 步驟3 − 如果存在環繞進位,則表示結果為正數,最終結果透過將環繞進位加到中間結果來獲得。如果沒有環繞進位,則結果為負數,透過取中間結果的7的補碼並在其前面加上負號來獲得。
讓我們瞭解使用7的補碼算術進行八進位制減法。
例1
使用7的補碼算術,從(721)8中減去(540)8。
解答
給定的數字是:
被減數 = 721
減數 = 540
取減數的7的補碼:
540的7的補碼 = 777 – 540 = 237
將7的補碼和被減數相加,我們得到:
721 + 237 = 1 160
存在環繞進位,表明結果為正數,最終結果透過將此環繞進位加到中間結果來獲得,即:
160 + 1 = 161
因此,721和540的八進位制差是161。
例2
使用7的補碼方法,從(121)8中減去(310)8。
解答
在這個例子中,給定的數字是:
被減數 = 121
減數 = 310
取減數的7的補碼,我們得到:
310的7的補碼 = 777 – 310 = 467
將被減數和減數的7的補碼相加,即:
121 + 467 = 610
由於沒有環繞進位,表明結果為負數,透過取中間結果的7的補碼獲得,即:
610的7的補碼 = 777 – 610 = 167
因此,121和310的八進位制差是-167。
使用8的補碼進行減法
8的補碼是另一種用於執行八進位制減法的技術。下面解釋了使用8的補碼執行八進位制減法的步驟:
- 步驟1 − 如果八進位制減法定義為X – Y。則求減數(Y)的8的補碼。
- 步驟2 − 將X和Y的8的補碼相加。
- 步驟3 − 如果存在環繞進位,則表示結果為正數,最終結果透過忽略環繞進位獲得。如果沒有環繞進位,則結果為負數,透過取中間結果的8的補碼並在其前面加上負號來獲得。
讓我們透過例子來了解使用8的補碼方法進行八進位制減法。
例1
使用8的補碼算術,從(712)8中減去(103)8。
解答
給出:
被減數 = 712
減數 = 103
求減數的8的補碼,我們得到:
103的8的補碼 = (777 - 103) + 1 = 675
將被減數和減數的8的補碼相加,我們得到:
712 + 675 = 1607
存在環繞進位。最終結果透過忽略環繞進位獲得。
因此,712和103的八進位制差是607。
例2
使用8的補碼方法,從(206)8中減去(471)8。
解答
在這個例子中,我們有:
被減數 = 206
減數 = 471
求減數的8的補碼:
471的8的補碼 = (777 - 471) + 1 = 307
將被減數和減數的8的補碼相加,我們得到:
206 + 307 = 515
由於沒有環繞進位,因此最終結果為負數,透過取中間結果的8的補碼獲得,即:
515的8的補碼 = (777 - 515) + 1 = 263
因此,206和471的八進位制差是-263。
使用15的補碼進行減法
15的補碼用於執行十六進位制數的減法。如果我們要從X中減去十六進位制數Y,則我們遵循以下步驟:
- 步驟1 − 求減數(Y)的15的補碼。
- 步驟2 − 將X和Y的15的補碼相加。
- 步驟 3 − 如果有首位進位(end-around carry),則結果為正數,最終結果透過將首位進位加到中間結果得到。如果沒有首位進位,則結果為負數,透過取中間結果的15的補碼並在其前面加上負號得到。
以下示例演示了使用15的補碼進行十六進位制減法的過程。
例1
使用15的補碼算術,從(E57A)16中減去(1920)16。
解答
給定的數字是:
被減數 = E57A
減數 = 1920
求減數的15的補碼:
減數的15的補碼 = FFFF – 1920 = E6DF
將被減數和減數的15的補碼相加,得到:
E57A + E6DF = 1CC59
存在首位進位,表明結果為正數,透過將首位進位加到中間結果得到,即:
CC59 + 1 = CC5A
因此,E57A和1920的十六進位制差為CC5A。
例2
使用15的補碼算術,從(A209)16中減去(DC25)16。
解答
給定的數字是:
被減數 = A209
減數 = DC25
求減數的15的補碼:
DC25的15的補碼 = FFFF – DC25 = 23DA
將被減數和減數的15的補碼相加,得到:
A209 + 23DA = C5E3
由於沒有首位進位,結果為負數,透過取中間結果的15的補碼得到,即:
C5E3的15的補碼 = FFFF – C5E3 = 3A1C
因此,A209和DC25的十六進位制差為-3A1C。
使用16的補碼進行減法
16的補碼也用於進行十六進位制減法。這裡解釋了使用16的補碼進行十六進位制減法的步驟:
- 步驟 1 − 如果十六進位制減法定義為 X – Y,則求減數 (Y) 的16的補碼。
- 步驟 2 − 將 X 和 Y 的16的補碼相加。
- 步驟 3 − 如果有首位進位,則表示結果為正數,最終結果透過忽略首位進位得到。如果沒有首位進位,則結果為負數,透過取中間結果的16的補碼並在其前面加上負號得到。
讓我們看一些例子來理解使用16的補碼進行十六進位制減法。
例1
使用16的補碼算術,從(F9D)16中減去(E7C)16。
解答
給定的十六進位制數為:
被減數 = F9D
減數 = E7C
取減數的16的補碼,得到:
E7C的16的補碼 = (FFF – E7C) + 1 = 184
將被減數和減數的16的補碼相加,得到:
F9D + 184 = 1121
存在首位進位,表明結果為正數。最終結果透過忽略首位進位得到。
因此,F9D和E7C的十六進位制差為121。
例2
使用16的補碼方法,從(AC5)16中減去(FF2)16。
解答
給定的數字是:
被減數 = AC5
減數 = FF2
取減數的16的補碼,得到:
FF2的16的補碼 = (FFF – FF2) + 1 = 00E
將被減數和減數的16的補碼相加,得到:
AC5 + 00E = AD3
沒有首位進位,表明結果為負數。最終結果透過取中間結果的16的補碼得到,如下:
AD3的16的補碼 = (FFF – AD3) + 1 = 52D
因此,AC5和FF2的十六進位制差為-52D。
結論
總之,補碼算術是數位電子學中用於簡化減法運算的一種方法。本章解釋了不同型別的補碼及其在減法運算中的應用,並提供了已解決的示例。