進位制是什麼?

2020-07-16 10:04:23
進位制是學習計算機語言最基本的知識,所以一定要掌握。其實它很簡單,我們日常生活中有很多進位制的例子,例如:
  • 一分鐘六十秒,逢六十進一,就是六十進位制;
  • 一天二十四小時,逢二十四進一,就是二十四進位制;
  • 一星期七天,逢七進一,就是七進位制;
  • 一年十二個月,逢十二進一,就是十二進位制;
  • 小學數學是逢十進一,就是十進位制;
  • 而計算機中的資料只有 0 和 1,逢二進一,就是二進位制。

所以進位制就是逢幾進一,r 進位制就是逢 r 進一。計算機只能識別二進位制,人類最習慣使用的是十進位制,而為了實際需要,又建立了八進位制和十六進位制。八進位制就是逢八進一,十六進位制就是逢十六進一。

C語言中規定了八進位制數前面要加0(注意是數位零而不是字母 o),十六進位制數前面要加0x0X,而十進位制前面什麼都不加。這是為什麼呢?

比如 5,到底是十進位制、八進位制還是十六進位制?什麼都不加就預設是十進位制。如果希望 5 是八進位制,那麼前面就加上 0;如果希望 5 是十六進位制,那麼前面就加上 0x 或 0X。

十進位制為逢十進一,它只有 0、1、2、3、4、5、6、7、8、9 這十個基數。逢十進一的意思就是:9 再加 1 就變為 10,即向十位進了一位,原來個位回歸 0。

二進位制為逢二進一,它只有 0 和 1 兩個基數。逢二進一的意思就是:
  • 1 再加 1 就變成 10,即向前進了一位,原來的 1 變成 0;
  • 再加 1 就是 11;
  • 再加 1 又逢二,再往前進一位,進一位後第二個 1 又逢二再進位,就是 100 了;
  • 再加 1 變成 101,再加 1 變成 110,再加 1 變成 111,再加 1 變成 1000……

二進位制和十進位制有一個對應的關係
十進位制 0 1 2 3 4 5 6 7 8
二進位制 0 1 10 11 100 101 110 111 1000

那麼十進位制的 5 和二進位制的 101 代表的是不是同一個數位?答案是“是”,它們本質上是同一個數位。

無論是十進位制、二進位制、八進位制還是十六進位制,都只是計數的一種方式,只不過它們用的是不同的進位制,所以表現形式不一樣,但本質上都是同一個數位。理解了上面內容,後面很多知識就很容易理解了。

八進位制就是逢八進一,它只有 0、1、2、3、4、5、6、7 這八個基數。

由上可以總結出,r 進位制有 r 個基數,而且基數裡面最大的是 r–1,因為基數都是從 0 開始的。比如五進位制中,基數最大的是 4,基數分別為 0、1、2、3、4。

十六進位制肯定有十六個基數。它的基數除了十進位制的 0~9 之外,還有字母 A~F,總共加起來是十六個。注意,字母不區分大小寫。十六進位制是逢十六進一,F 是十五,加 1 就變成十六了,逢十六就進一,即 0x10。

下面是常用進位制對照表,大家可以看一下。
十進位制 二進位制 八進位制 十六進位制
0 0 0 0
1 1 1 1
2 10 2 2
3 11 3 3
4 100 4 4
5 101 5 5
6 110 6 6
7 111 7 7
8 1000 10 8
9 1001 11 9
10 1010 12 A
11 1011 13 B
12 1100 14 C
13 1101 15 D
14 1110 16 E
15 1111 17 F

人類為什麼最習慣用十進位制

人類為什麼最習慣用逢十進一的十進位制?對於世界上大部分的國家,即便之前因為交通不發達,他們彼此之間並不知道在世界的某一個角落還有另一個民族的存在,但是他們使用的都是十進位制!這是為什麼?

原因很簡單,就是因為我們都有十個手指!進位制的起源是用於記數的,人類剛開始都是用手指計數的。即使是現在的小朋友算數也還是喜歡用手指,所以人類最習慣用十進位制。

計算機為什麼用的是二進位制

那麼為什麼計算機使用的是二進位制呢?

因為二進位制從硬體上比較容易實現。任何事物最少也有兩種不同的狀態,所以區分成兩種狀態比較容易。但是要將一個硬體硬生生地區分成十種不同的狀態,這個就太難、太複雜了。

小結

進位制是學習計算機必須要掌握的內容,也是一個重點。
  • 掌握進位制的概念,區分八進位制數、十進位制數和十六進位制數的表示方法。注意八進位制數是以0開頭,十六進位制數是以0x0X開頭,以及了解其原因。
  • 掌握進位制只是數位的不同表現形式,它們本質上表示的是同一個數。
  • 了解為什麼人類習慣使用十進位制而計算機使用的卻是二進位制。