電腦中計算的基礎 — 補數

Kola
Mar 10, 2022

--

補數,是電腦在最底層,做任何基礎加法減法(加法器、減法器)會用到的東西,最常聽到的應該是二補數,因為電腦是二進位,實際上補數主要有兩種,n補數和n-1補數,每個進位有這兩種補數。

定義

  1. n補數(假如是二進位就是二補數,十進位就是十補數)
  2. n-1補數(假如是二進位就是一補數)

詳細數學定義

所以我們可以得出n補數比多1。

而我們看一下維基百科。

維基百科說電腦是用二補數,那為什麼要用二補數呢?我們可以看一下二補數跟一補數的圖。

出處

出處

可以看到2補數應是多了一個可以表示,並且每個數字都有唯一的表示方式,所以電腦都用二補數。

並且二補數的負號是用以下判斷,把001(1)取2補數,就是111,也就是-1

這也可以解釋為什麼有號整數再相加的時候,超出去會變成負數。

如同以下:

32位的補碼: 0111…1(2147483647) + 000…1(1) = 100000(-2147483648)。

並且無號整數相加時會自動對2³²次方取餘數。

32位的補碼: 1111…1(4294967295) + 000…1(1) = 0(mod 2³²)。

--

--