少年科技人雜誌 -- 2014 年 12 月號 (開放公益出版品)

電腦的數學基礎:二進位系統與運算

十進位

小學所教的加減乘除方法都是以十進位為基礎的,舉例而言、十進位的 358 其實代表的是 3*100+5*10+8*1 這樣以 10 為基礎的表達系統,如果寫成直式或許讀者會看得更清楚。

   300          3*100
    50        + 5* 10  
     8        + 8*  1
+ -----    = --------------------
   358        3*100+5*10+8*1

二進位

但是在電腦當中,十進位並不好用,二進位才是比較適合電腦的表達方式,以下是二進位裏前幾個位元所代表的意義。

0 0 0 1   代表 1
0 0 1 0   代表 2 
0 1 0 0   代表 4 = 2*2
1 0 0 0   代表 8 = 2*2*2

於是,二進位的 1101 所代表的,其實是如下的一個數字:

  1000           8
   100           4
     1           1
+ -----   = + -------
  1101          13

二進位加法

當我們用十進位做加法運算的時候,每當數字到達十就必須進位,這也正是十進位這個名詞的意義,以下是一個十進位加法的範例。

進位     11
   A     358
   B      74
+----  ---------
 A+B     432

同樣的、當我們用二進位作加法的時候,只要數字到達 2 就必須要進位,以下是一個二進位加法的範例:

進位   1 1 1 1 1
   A     0 1 1 0 1
   B     1 0 1 1 1
+----  -----------
 A+B   1 0 0 1 0 0 = 十進位的 36

小結

當您可以理解二進位與其加法之後,就可以進一步理解「用二補數表示負數、二進位減法、乘法與除法」等等,未來我們將會進一步討論這些主題。

現在我們已經學會二進位的表示法,還有二進位的加法了,於是我們可以開始設計二進位加法的電路了,讓我們回到邏輯閘的世界吧!

參考文獻