進位制是學習計算機語言最基本的知識,所以一定要掌握。其實它很簡單,我們日常生活中有很多進位制的例子,例如:
-
一分鐘六十秒,逢六十進一,就是六十進位制;
-
一天二十四小時,逢二十四進一,就是二十四進位制;
-
一星期七天,逢七進一,就是七進位制;
-
一年十二個月,逢十二進一,就是十二進位制;
-
小學數學是逢十進一,就是十進位制;
-
而計算機中的資料只有 0 和 1,逢二進一,就是二進位制。
所以進位制就是逢幾進一,r 進位制就是逢 r 進一。計算機只能識別二進位制,人類最習慣使用的是十進位制,而為了實際需要,又建立了八進位制和十六進位制。八進位制就是逢八進一,十六進位制就是逢十六進一。
C語言中規定了八進位制數前面要加
0
(注意是數位零而不是字母 o),十六進位制數前面要加
0x
或
0X
,而十進位制前面什麼都不加。這是為什麼呢?
比如 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
開頭,十六進位制數是以0x
或0X
開頭,以及了解其原因。
-
掌握進位制只是數位的不同表現形式,它們本質上表示的是同一個數。
-
了解為什麼人類習慣使用十進位制而計算機使用的卻是二進位制。