數位電子技術 - 補碼運算



補碼運算是在數位電子技術領域使用的一套數學技術,主要用於執行各種算術運算,特別是減法。

在這裡,我們將介紹數字系統中最常用的幾種補碼型別:

  • 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's Complement Arithmetic

例2

求 11001100 的二進位制補碼。

解答

11001100 的二進位制補碼可以按如下方式獲得:

方法一 − 使用反碼:

11001100 的反碼 = 00110011

二進位制補碼 = 反碼 + 1

二進位制補碼 = 00110011 + 1

因此,

二進位制補碼 = 00110100

方法二 − 從 2N 中減去該數:

二進位制補碼 = 28 - 11001100

二進位制補碼 = 100000000 – 11001100 = 00110100

方法三 − 複製到第一個 1 位的位:

2's Complement Arithmetic Subtracting

什麼是七進位制補碼?

在數位電子學中,七進位制補碼是一個用於簡化八進位制減法的概念。給定八進位制數的七進位制補碼可以透過從該數的每一位上減去 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。

結論

總之,補碼算術是數位電子學中用於簡化減法運算的一種方法。本章解釋了不同型別的補碼及其在減法運算中的應用,並提供了已解決的示例。

廣告