跳到主要內容

➕ 二進制加法和減法

二進制算術運算

二進制加法和減法是數碼系統中的基本運算。理解這些運算的工作原理對於理解計算機算術和數碼邏輯至關重要。

➕ 二進制加法

二進制加法遵循與十進制加法類似的規則,但只有兩個數字(0和1):

📝 基本規則

  • 0 + 0 = 0
  • 0 + 1 = 1
  • 1 + 0 = 1
  • 1 + 1 = 0,進位1(相當於十進制中的2,二進制表示為10)
  • 1 + 1 + 1 = 1,進位1(相當於十進制中的3,二進制表示為11)

🔢 逐步過程

  1. 從最右邊的位開始相加
  2. 如果和為2或3,記錄餘數並進位1
  3. 繼續向左,包括任何進位的數字
  4. 在最左邊的加法後,將任何最終進位寫為額外的位

例1:簡單加法

  1 0 1 1    (十進制的11)
+ 0 1 0 1 (十進制的5)
---------
1 1 0 0 (十進制的16)

從右到左計算:

  • 1 + 1 = 0,進位1
  • 1 + 0 + 1(進位)= 0,進位1
  • 0 + 1 + 1(進位)= 0,進位1
  • 1 + 0 + 1(進位)= 0,進位1
  • 最終進位:1
  • 結果:10000(十進制的16)

例2:多次進位的加法

  1 1 1 1    (十進制的15)
+ 0 1 1 1 (十進制的7)
---------
1 0 1 1 0 (十進制的22)

從右到左計算:

  • 1 + 1 = 0,進位1
  • 1 + 1 + 1(進位)= 1,進位1
  • 1 + 1 + 1(進位)= 1,進位1
  • 1 + 0 + 1(進位)= 0,進位1
  • 最終進位:1
  • 結果:10110(十進制的22)

➖ 二進制減法

二進制減法有幾種方法。我們將介紹直接方法和補碼方法。

📝 直接方法

基本規則

  • 0 - 0 = 0
  • 1 - 0 = 1
  • 1 - 1 = 0
  • 0 - 1 = 1,借位1(相當於2 - 1 = 1)

例:直接減法

  1 0 1 1    (十進制的11)
- 0 1 0 1 (十進制的5)
---------
0 1 1 0 (十進制的6)

從右到左計算:

  • 1 - 1 = 0
  • 1 - 0 = 1
  • 0 - 1 = 1,借位1(使下一位變為0)
  • 0 - 0 = 0
  • 結果:0110(十進制的6)

🔄 二補數方法

二補數方法在計算機中廣泛用於表示負數和執行減法。

要從A減去B(A - B):

  1. 找出B的二補數
  2. 將其加到A
  3. 忽略超出原始位數的任何進位

求二補數

  1. 反轉所有位(將0變為1,1變為0)
  2. 結果加1

例:使用二補數進行減法

從11(1011)中減去5(0101):

步驟1:求5(0101)的二補數
反轉位:1010
加1: + 1
-----
1011

步驟2:加到11(1011)
1 0 1 1 (十進制的11)
+ 1 0 1 1 (5的二補數)
---------
1 0 1 1 0

步驟3:忽略進位
0 1 1 0 (十進制的6)

⚠️ 特殊情況和注意事項

🔄 加法中的溢出

當運算結果太大,無法用可用位數表示時,就會發生溢出:

  1 1 1 1    (十進制的15,4位的最大值)
+ 0 0 0 1 (十進制的1)
---------
1 0 0 0 0 (十進制的16,需要5位)

在固定寬度系統中,最左邊的進位位會丟失,可能導致錯誤。

➖ 減法中的負數結果

當使用二補數從較小的數減去較大的數時:

  • 結果將以二補數形式表示
  • 最左邊的位將為1,表示負數

要找到負二補數結果的絕對值,再次求其二補數。

💻 實際應用

二進制加法和減法是以下方面的基礎:

  • 🧮 CPU中的算術運算
  • 🧠 記憶體中的地址計算
  • 📊 數碼信號處理
  • 📈 實現更高級的數學函數
  • 🔍 錯誤檢測和糾正碼

理解這些運算提供了對計算機如何在最基本層面執行計算的洞察。