二進制的小數點運算(定點數運算)其實和你之前學的整數運算非常相似。最核心的概念只有一個:「對齊小數點」。
只要小數點對齊了,剩下的運算規則(逢二進一、借一當二)與整數完全相同。電腦在處理這類運算時,通常會將小數視為「定點數」(Fixed-point),也就是預設小數點固定在某個位置。以下詳細拆解原理與範例:
➕ 二進制小數加法
1. 原理
- 對齊小數點:這是最重要的一步。就像十進制加法要將個位對個位、十分位對十分位一樣,二進制也要將小數點垂直對齊。
- 補零:如果兩個數的小數位數不同,可以在較短數字的末尾補 0,讓位數對齊,方便計算。
- 運算規則:與整數相同,逢二進一。
2. 計算範例
假設我們要計算 10.11+1.00110.11+1.001 (對應十進制 2.75+1.125=3.875 ):
步驟解析:
- 對齊:將 10.11 補零變成 10.110 ,以配合 1.001 的三位小數。
- 相加:
1 0 . 1 1 0 (被加數)
+ 0 1 . 0 0 1 (加數,前面補0對齊整數部)
----------------------------------------
1 1 . 1 1 1
逐步檢查:
- 小數第3位:0+1=1
- 小數第2位:1+0=1
- 小數第1位:1+0=1
- 小數點:直接落下。
- 整數部:0+1=1 ,1+0=1。
結果:11.111
3. 進位範例(觸發逢二進一)
假設計算 0.11+0.01:
0 . 1 1
+ 0 . 0 1
-----------
1 . 0 0
解析:
- 小數第2位1+1=10 (二進制的2)。寫 0,向前進 1。
- 小數第1位:1(進位)+1+0=10。寫 0,向整數部進 1。
- 整數部:0+0+1(進位)=10+0+1(進位)=1 。
- 結果:1.001.00 (即十進制的 1.0)。
➖ 二進制小數減法
1. 原理
- 對齊小數點:同樣必須先對齊。
- 運算規則:與整數相同,借一當二。當你向高位借位時,借來的 1 在本位代表數值 2。
2. 計算範例
假設我們要計算 10.0−0.(這是一個經典範例,對應十進制的 2−0.5=1.5):
步驟解析:
- 對齊:將 10.0 補零變成 10.00 ,以便於借位觀察。
- 相減:
1 0 . 0 0
- 0 0 . 1 0
-------------
0 1 . 1 0
逐步解析(借位過程):
- 小數第2位:0−0=0。
- 小數第1位:0−1 不夠減。
- 需向整數部借位。
- 整數部的 00 也沒有,需再向高位 1 借。
- 高位的 11 借給中間變成 2 (即二進制 10 ),中間留 1 ,再借給小數第一位。
- 小數第一位借到後變成 2 (二進制 10 )。
- 運算:2−1=1 。
- 整數部:原本是 10 (二進制的2),被借走 1 後,剩下 1 。
- 減數的整數部是 0 。
- 1−0=1 。
- 結果:1.1 (即十進制的 1.51.5 )。
💡 電腦內部的特殊視角:定點數
雖然我們人類在紙上計算時會畫一條小數點,但在電腦硬體(如參考資料提到的定點運算器)中,其實並沒有真正的小數點符號。
- 定點表示法:電腦會預設一個「隱形的小數點」位置。例如,在一個 8 位元的數字中,系統可能預設前 4 位是整數,後 4 位是小數。
- 硬體運作:CPU 在運算時,依然把它們當作整數在加減(使用加法器和補數法),只是軟體或程式員在讀取結果時,知道要把小數點點在第 4 位後面。
📊 總結
表格
特性二進制小數加法二進制小數減法前置作業小數點對齊,位數不足補 0小數點對齊,位數不足補 0進位規則滿 2 進 1(進位到左邊一位)借 1 當 2(借來的位在右邊當 2 用)硬體實作視為整數運算,最後再還原小數點位置轉為「加上負數的補數」,最後還原小數點
只要記住「對齊小數點」,剩下的就是重複你已經學會的整數加減法規則了!

























