IP地址和子網劃分學習筆記之《預備知識:進制計數》

一、序:IP地址和子網劃分學習筆記開篇

只要記住你的名字,不管你在世界的哪個地方,我一定會去見你。
——新海誠 電影《你的名字》

在我們的日常生活中,每個人的名字對應一個唯一的身(敏)份(感)證(詞)號,在Internet上也是一樣,每臺主機(Host),包括所有的具有上網功能的電子設備都有IP地址,有了IP地址,這些電子設備聯網之後,才能正常通信。

要了解和熟練掌握IP地址和子網的劃分,首先必須要對進制數計數有一定的認識,本篇爲預備知識:掌握十進制、二進制、十六進制、八進制以及它們之間的關係和互相轉換。

IP地址和子網劃分學習筆記相關篇章:

1、IP地址和子網劃分學習筆記之《預備知識:進制計數》

2、IP地址和子網劃分學習筆記之《IP地址詳解》

3、IP地址和子網劃分學習筆記之《子網掩碼詳解》

4、IP地址和子網劃分學習筆記之《子網劃分詳解》

5、IP地址和子網劃分學習筆記之《超網合併詳解》

二、計算機中進制之間的關係和轉換

1、計算機中常見的進制

我們的日常生活中常見的十進制,計算機的運行計算基礎就是基於二進制來運行,可以簡單的理解爲:1代表通電(開),0代表斷電(關),只是用二進制執行運算,用其他進制表現出來。十六進制常見於內存地址,註冊表regedit,MAC地址等。 而計算機中八進制比較少見不常用,一般用於某些編程語言。

計算機本身使用的就是二進制,但是使用起來很不方便的,十六進制或八進制可以很好的解決這個問題(換算的時候1位十六進制數可以用4位二進制數代替,1位八進制數可以用3位二進制數代替)。因爲進制越大,數的表達長度也就越短,例如:二進制數111111111111用十六進制表示爲FFF,這樣更簡短,比較節省空間,方便讀,也方便記。

IP地址和子網劃分學習筆記之《預備知識:進制計數》

2、十進制、二進制、十六進制、八進制之間對照表

IP地址和子網劃分學習筆記之《預備知識:進制計數》

3、二進制、八進制、十六進制數轉換成十進制

十進制可以有多位組成,根據十進制的運算規則:逢10進1,借1當10,從右向左依次爲個位、十位、百位、千位、萬位...
(1024)10 = 1×10^3+0×10^2+2×10^1+4×10^0
= 1000+0+20+4
=(1024)10

由此類似,那麼二進制的運算規則:逢2進1,借1當2,也可以由多位數組成,從右向左分別爲1位、2位、4位、8位、16位...
IP地址和子網劃分學習筆記之《預備知識:進制計數》
爲什麼稱二進制的位數爲1位、2位、4位...?
這其實要從十進制的角度看二進制各位數得出的名稱,如下表:
IP地址和子網劃分學習筆記之《預備知識:進制計數》

從上表可以看出,當二進制產生進位時,代表的十進制數爲2、4、8、16、32、64、128...
二進制雖然只有0和1兩個數字,但是由於數字所處的位置不同,表示的數據也不同
例如:
二進制數 “1101”這個二進制數共有4位,由3個1和1個0組成,比如數字1所處位置不同,所代表的大小也不同,其所處位置稱作權。從右向左順序各個位表示十進制的含義:

第一個1表示:1的個數
第二個0表示:2的個數
第三個1表示:4的個數
第四個1表示:8的個數

(在此可以類比十進制1101,由1個1000,1個100,0個10,1個1組成。)
所以,二進制數1101由1個8,1個4,0個2,1個1組成。按各位的權列出:
(1101)2 = 1×2^3+1×2^2+0×2^1+1×2^0
= 8+4+0+1
=(13)10

這種權展開式可以很方便將二進制轉換爲十進制。
同理,將八進制數1024轉換爲十進制數
(1024)8 = 1×8^3+0×8^2+2×8^1+4×8^0
= 512+0+16+4
=(532)10

將十六進制數2B5F轉換爲十進制數
(2B5F)16 = 2×16^3+B×16^2+5×16^1+F×16^0
= 2×16^3+11×16^2+5×16^1+15×16^0
= 8192+2816+80+15
=(11103)10

由此我們可以得到一個非十進制數轉換爲十進制數的自定義公式:
(X)Z = Xn-1×Z^n-1+ Xn-2×Z^n-2+…+ X1×Z^1+ X0×Z^0
=(Y)10
X表示一個非二進制(多位),Y表示一個十進制數(多位),Z表示各進制的基數,n表示位數。

4、十進制轉換成二進制、十六進制、八進制

十進制轉換成二進制整數就通常採用“除2取餘,逆序排列”的方法。具體做法是用2整除十進制整數,可以得到一個商和餘數,再用2去除商,又會得到一個商和餘數,如此反覆,直到商爲0停止。再把先得到的餘數作爲二進制低位有效位,後得到的餘數作爲二進制高位有效位,依次排列。
舉個示例:將十進制“11”轉換爲二進制
IP地址和子網劃分學習筆記之《預備知識:進制計數》
將十進制11轉換爲二進制數爲1011,表示爲:(11)10 =(1011)2

同樣的,十進制轉換爲十六進制,採用“除16取餘,逆序排列”的方法,十進制轉換爲八進制採用“除8取餘,逆序排列”的方法。

5、進制之間轉換小技巧

1位十六進制等於4位二進制
1位八進制等於3位二進制

由於十六進制和八進制的基數問題(太大或不太好算),它們的“冪次方”和“除基數取餘”計算起來比較麻煩,爲了方便計算,通常建議先把它們轉換位二進制後再繼續轉換爲相應的進制。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章