今天要介紹的東西,是在編寫程式的時候,可能需要具備的一個知識,但是好像不知道也不會影響那麼大(對於如果未來不是寫系統或是後端的工程師),但是因為這東西從小提到大,卻好像沒有深入了解,因此對於數學不太熟練的我就努力的學習了一番。我也不會寫到太難的東西(畢竟我自己也不會哈哈)。
對於我們一般台灣人的生活,最常接觸到的就是十進位制還有六十進位制!但是什麼是進位制?
請問是因為台灣前陣子水很缺乏,需要禁止衛浴嗎,禁衛制?
還是因為疫情嚴峻,需要禁位,禁位制?
都不是。
首先我們來了解一下進位。
通常我們在小學開始,就會被教導 1 + 1 = 2 、1 + 2 = 3、1 + 3 = 4 ……當1 加到9的時候就會進位,這個進位方式,就是所謂的十進位制。
接下來另一個常見的進位制是時鐘,當秒針轉到 60 秒的時候,分針就會轉動1 / 60 圈,也就是一分鐘;而當分針轉動60圈的時候,時針也會轉動1 /60圈,也就是一個小時,這樣的進位制稱作六十進位制。
所以其實,日常生活中會用到很多有關數學的東西,他們也沒有想像中的那麼可怕。
接下來要介紹的是二進位,一些略懂電腦的人們可能知道,在電腦的語言中是由0與1所組成的,但可能不太知道這些0 與 1 是怎麼運作的。
首先,拿十進位來舉例,就是每當數字加到10的時候就會進位;同理來說,在二進位裡面,每當數字加到2的時候就會進位。
例如1
再加 1
就會變成 10
再加 1
就會變成 11
,如果這個時候再加 1
就會再進位變成 100
【二進位中的 1 - 32】
二進位 | 十進位 | 二進位 | 十進位 |
---|---|---|---|
000 001 | 1 | 010 001 | 17 |
000 010 | 2 | 010 010 | 18 |
000 011 | 3 | 010 011 | 19 |
000 100 | 4 | 010 100 | 20 |
000 101 | 5 | 010 101 | 21 |
000 110 | 6 | 010 110 | 22 |
000 111 | 7 | 010 111 | 23 |
001 000 | 8 | 011 000 | 24 |
001 001 | 9 | 011 001 | 25 |
001 010 | 10 | 011 010 | 26 |
001 011 | 11 | 011 011 | 27 |
001 100 | 12 | 011 100 | 28 |
001 101 | 13 | 011 101 | 29 |
001 110 | 14 | 011 110 | 30 |
001 111 | 15 | 011 111 | 31 |
010 000 | 16 | 100 000 | 32 |
從上面可以看到,我以六個數字為一組來表示,當十進位是0
時,二進位是 000 000
,但是十進位到4
的時候,二進位就會從000 011
進位到 000 100
,之後也以此類推。其實有個更好的判斷方式,就是從右邊數來第n
個數字當作2
的(n-1)
次方,就拿19
來舉例。
我們可以把19
拆解成1 x 16 + 1 x 2 + 1 x 1
就等於是1 x 2^4 + 1 x 2^1 + 1 x 2^0
,如果回到二進位的那一串數字來看:
【19的二進位與二的次方對照表】
6 | 5 | 4 | 3 | 2 | 1 |
---|---|---|---|---|---|
0 | 1 | 0 | 0 | 1 | 1 |
2^5 | 2^4 | 2^3 | 2^2 | 2^1 | 2^0 |
=32 | =16 | =8 | =4 | =2 | =1 |
這樣的方式也可以對應到任何的以 R
為底的近位制,像是4進位、8進位、16進位,或7進位、23進位都是可以的。
你知道為什麼時間上要用60 進位來計算嗎? 每日頭條
(A) 因為60很酷
(B) 因為60等分比較好切
(C) 因為60不多也不少 剛剛好
答案其實都對!
如果把60做因式分解:1、2、3、4、5、6、10、12、15、20、30、60,代表,60這個數字可以拆解成很多種組合,也就是1個小時,可以拆解成1個60分、2個30分、4個15分、5個12分、6個10分、10個6分、12個5分、15個4分、30個2分、60個1分;但若是用50做因式分解:1、2、5、10、25、50,等於1個小時頂多只能拆解成1個50分鐘、2個25分、5個10分、10個5分、25個2分、50個1分。相對來說如果以50分為一小時,可以拆解的方式更少,但在日常生活中,時間很長被拆解成不同長度,像是10分(1/6小時)、15分(1/4小時)、20分(1/3小時),但是如果今天是用50分為一個小時,你的1/4小時可能會叫作12.5分鐘,1/3小時會被叫作16.6666666分鐘。
另外,由於在製作時鐘的時候,因為從前難以準確分出6或是12以外的切法。在一個圓中,最好切的方式就是將它像切 pizza 一樣切成6等份,然後再從每份的中間切下去就會得到12份。
這次先簡單的介紹一下進位制是如何運作的,而裡面比較重要的當然就是二進位了! 在下一篇會介紹一下二進位的進階版,4進位、8進位;還有16進位。