歡迎來到二進制算術!

你有沒有想過電腦在進行數學運算時,實際上是怎樣「思考」的?由於電腦是由只能處於 開啟 (ON, 1)關閉 (OFF, 0) 狀態的小型開關組成的,因此它們不能像我們一樣使用 0-9 的數字。取而代之的是,它們使用二進制算術 (binary arithmetic)

在本章中,我們將學習電腦處理數字的兩種主要方式:將它們相加,以及透過位移 (shifting) 來進行乘法或除法。如果一開始覺得有點奇怪也不用擔心——只要學會了四個簡單的加法規則,你很快就會成為二進制專家!

1. 二進制加法

二進制加法的運作方式與你在小學學過的「直式加法」完全相同,但實際上更簡單,因為需要記住的數字更少。在我們的十進制系統(基數 10)中,當數字達到十時就需要進位。而在二進制(基數 2)中,當數字達到時,我們就需要進位!

四大黃金規則

要計算任何二進制加法,你只需要記住這四個結果:

1. \(0 + 0 = 0\)
2. \(0 + 1 = 1\)
3. \(1 + 1 = 0\) (進位 1 到下一位)
4. \(1 + 1 + 1 = 1\) (進位 1 到下一位)

逐步教學:兩個數字相加

讓我們將 \(00101011\) (43) 和 \(00010110\) (22) 相加。

步驟 1:最右側(最低有效位,Least Significant Bit)開始。
步驟 2: 逐位應用規則。
步驟 3: 如果遇到 1 加 1,寫下 0 並將 1「進位」到左邊的鄰位。

快速複習: 我們為什麼要進位?就像在 \(7 + 5 = 12\) 中,你寫下 2 並進位 1。在二進制中,\(1 + 1\) 等於「二」,寫作 \(10\)。因此,我們寫下 \(0\) 並進位 \(1\)。

三個數字相加

課程大綱指出你可能需要同時相加多達三個二進制數字。規則是一樣的!

例子: 如果某一列有三個 1 (\(1 + 1 + 1\)),總和就是「三」。在二進制中,三寫作 \(11\)。
所以,你需要寫下 1進位 1

常見錯誤:溢位 (Overflow)

在考試中,答案的長度最多為 8 位元 (8 bits)。你不需要將數字進位到第 9 位。如果你發現 8 位元的加法運算最後多出了一個「進位」,請務必檢查你的計算!

重點總結: 二進制加法就是帶進位的直式加法。記住 \(1+1\) 是 \(0\) 進位 \(1\),而 \(1+1+1\) 是 \(1\) 進位 \(1\)。

2. 二進制位移

二進制位移 (binary shifts) 是電腦進行乘法除法的一種超快速方法。電腦不需要進行複雜的數學運算,只需將位元向左或向右滑動即可。

邏輯左移 (乘法)

當你將位元向移動時,數值會變大

- 向左移 1 位,數值乘以 \(2\)。
- 向左移 2 位,數值乘以 \(4\) (\(2 \times 2\))。
- 向左移 3 位,數值乘以 \(8\) (\(2 \times 2 \times 2\))。

操作方法:
1. 將每個位元向左移動指定的位數。
2. 在右側的空位補上 0
3. 任何從左側「掉出」的位元會直接被捨棄。

邏輯右移 (除法)

當你將位元向移動時,數值會變小

- 向右移 1 位,數值除以 \(2\)。
- 向右移 2 位,數值除以 \(4\)。

操作方法:
1. 將每個位元向右移動。
2. 在左側的空位補上 0
3. 任何從右側「掉出」的位元就永遠消失了!

現實生活中的類比

想像數字 \(500\)。如果你將所有位數向左移動一位並補上一個 \(0\),它就變成了 \(5000\)(乘以 10)。二進制位移的做法完全相同,但因為基數是 2,所以它是乘以或除以 2 的冪次方 (powers of 2)

你知道嗎? 對電腦處理器來說,位移比實際的乘法運算「便宜」得多。只需滑動位元就能節省更多的能量和時間!

2 的冪次方速查表

如果考試要求你使用位移進行乘法或除法,請使用此清單:
- \(2^1 = 2\)(左/右移 1 位)
- \(2^2 = 4\)(左/右移 2 位)
- \(2^3 = 8\)(左/右移 3 位)
- \(2^4 = 16\)(左/右移 4 位)

重點總結: 移 = 乘法移 = 除法。記得將新的空位補上 0。

總結清單

在繼續學習之前,請確保你能:
- 將兩個 8 位元二進制數相加。
- 將三個 8 位元二進制數相加。
- 使用左移將數字乘以 2、4 或 8。
- 使用右移將數字除以 2、4 或 8。
- 解釋位移是如何用於 2 的冪次方的簡單乘除法。

考試小撇步: 檢查二進制加法時,可以先將數字轉換為十進制進行正常加法,看看你的二進制答案是否匹配!