Sign-and-Magnitude Representation
學習最直接的負數表示法:把最高位元(Most Significant Bit)當作「正負號」。透過互動,觀察這種表示法的運作方式及其帶來的限制,為接下來學習一補碼及二補碼建立基礎。
發現負零 (-0)!
我們遇到了「雙重零」。數值上它等於 0,但在二進制中它變成了 10000000。這會讓電腦在檢查「數值是否等於零」時需要額外的步驟。
最左邊的位元(第 8 bit)專門用來記錄正負號:0 代表正數,1 代表負數。其餘的 7 個位元用來記錄數值的絕對值。
雖然人類很容易看懂,但對電腦計算來說很不方便。當電腦要把兩個數字相加時,它必須先檢查符號。如果符號不同,加法就要轉換成減法處理。而且它還產生了「+0 (00000000)」和「-0 (10000000)」的問題!
「我們可以直接對這兩個數字進行標準的二進制加法嗎?」
不可以! 這是初學者常犯的錯誤。如果我們嘗試把 +5 和 -5 用標準二進制加法相加,結果並不是 0:
這正是為什麼電腦科學家後來發明了「補碼(Complement)」,讓減法可以直接透過加法電路完成,而不需要額外的複雜判斷。