One's Complement Visualizer
了解「一補碼」的簡單邏輯(0變1,1變0)。親自觀察它最大的致命傷:系統中同時存在「+0」和「-0」,這浪費了記憶體,也讓電腦的運算邏輯變得複雜。
發現負零 (-0)!
這是一補碼系統獨有的現象。數值上它等於 0,但在二進制中它全是 1 (11111111)。
非常直觀!正數的表示法與一般二進制無異。要得到負數,只需將對應正數的所有位元反轉(0變1,1變0)即可。也就是邏輯閘中的 NOT 運算。
如果我們將 +0 (00000000) 的位元全部反轉,會得到 11111111。在數學上,這個值被定義為 -0。這在硬體設計上是個大麻煩,因為電腦在判斷「是否等於零」時,需要檢查兩種不同的情況!
這是一個常見的誤會!只改最左邊符號位的做法稱為「符號與大小 (Sign-Magnitude)」。在一補碼系統中,要把正數變成負數,必須反轉所有的位元,而不僅僅是第一位。
不是的。因為一補碼會產生「雙重零 (-0 和 +0)」的問題,現代電腦普遍採用「二補碼 (Two's Complement)」。一補碼現在主要是作為學習二補碼的過渡概念,或是計算過程中的一步。