➕ 二進制加法和減法
➕ 二進制算術運算
二進制加法和減法是數碼系統中的基本運算。理解這些運算的工作原理對於理解計算機算術和數碼邏輯至關重要。
➕ 二進制加法
二進制加法遵循與十進制加法類似的規則,但只有兩個數字(0和1):
📝 基本規則
- 0 + 0 = 0
- 0 + 1 = 1
- 1 + 0 = 1
- 1 + 1 = 0,進位1(相當於十進制中的2,二進制表示為10)
- 1 + 1 + 1 = 1,進位1(相當於十進制中的3,二進制表示為11)
🔢 逐步過程
- 從最右邊的位開始相加
- 如果和為2或3,記錄餘數並進位1
- 繼續向左,包括任何進位的數字
- 在最左邊的加法後,將任何最終進位寫為額外的位
例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):
- 找出B的二補數
- 將其加到A
- 忽略超出原始位數的任何進位
求二補數
- 反轉所有位(將0變為1,1變為0)
- 結果加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中的算術運算
- 🧠 記憶體中的地址計算
- 📊 數碼信號處理
- 📈 實現更高級的數學函數
- 🔍 錯誤檢測和糾正碼
理解這些運算提供了對計算機如何在最基本層面執行計算的洞察。