轉至:https://blog.csdn.net/erlian1992/article/details/47342189
最近一直在看全國計算機三級網絡技術這本書,看到第二章的時候,不免會遇到計算機中最常用的進制轉換問題。什么IP地址,什么子網掩碼,什么網路地址,什么廣播地址都會用到二進制和十進制的相互轉化,而且最常用的是8位二進制數一組的轉化,這就來總結相互轉化最快的方法。
首先來認識標准分類的IP地址:
IP地址是由網絡號與主機號組成的,長度是32bit,用點分十進制方法表示,這樣就構成了標准分類的IP地址。常用的A類、B類、C類IP地址采用包括“網絡號-主機號”兩層結構。通常采用x.x.x.x的方式來表示,每個x為8bit,每個x的值為0~255,例如,202.113.29.119。
拿一個圖來具體看看五類標准IP地址:
以上可以看出,IP地址的長度為32位二進制數,通常我們把它分為4組,每八位二進制數一組,每組轉化為十進制數,每組之間用點來連接,這種方法叫做點分十進制。
比如一個IP地址為:192.168.128.1
寫成二進制為:11000000 10101000 10000000 00000001
一,來看看怎么快速轉化二進制數11111111:
1)首先應該記住八個十進制數字:128,64,32,16,8,4,2,1。這八個數字肯定是經常用到的,以上八個數字加起來恰好就為255。
2)二進制數11111111每一位對應的數字從左到右恰好是從大到小依次排列:128,64,32,16,8,4,2,1。
3)也就是可以這樣對應進行轉化相加:
1 1 1 1 1 1 1 1
128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 =255
二,再來看其他一些常用十進制數字的轉化(反向的必須記住):
1)254:這一看就是255減去1得到,也就是八位二進制數的最后一位置為零。
1 1 1 1 1 1 1 0
128 + 64 + 32 + 16 + 8 + 4 + 2 + 0 =254
2)252:還是用上述的方法進行相減,255減去(1+2)得到,將最后兩位置為零。
1 1 1 1 1 1 0 0
128 + 64 + 32 + 16 + 8 + 4 + 0 + 0 =252
3)248:依然用上述的方法進行相減,255減去(1+2+4)得到,將最后三位置為零。
1 1 1 1 1 0 0 0
128 + 64 + 32 + 16 + 8 + 0 + 0 + 0 =248
4)240:通常我們知道(1+2+4+8=15),用255減去15就是240,因此后四位置為零。
1 1 1 1 0 0 0 0
128 + 64 + 32 + 16 + 0 + 0 + 0 + 0 =240
5)224:這個數可以用上述的減去法,也可以用前四位相加得到,看哪一種更加快速的運算得到,將后五位置為零:
1 1 1 0 0 0 0 0
128 + 64 + 32 + 0 + 0 + 0 + 0 + 0 =224
6)192:這個數使我們最為常見的數字,就是128+64得到,只有前兩位為1,后六位均為零。
1 1 0 0 0 0 0 0
128 + 64 + 0 + 0 + 0 + 0 + 0 + 0 =192
7)128:這個數我們可以知道就是第一位為1,其余后面的均為零:
1 0 0 0 0 0 0 0
128 + 0 + 0 + 0 + 0 + 0 + 0 + 0 =128
三,再來看一些連續的1和0組成的常用的數字(反向的轉化也必須記住):
1)10010000:根據講到的拆分法進行相加就是128+16=144
2)10101000:拆分法得到128+32+8+168
3)10100000:拆分法得到128+32=160
4)10000001:拆分法得到128+1=129
5)10001000:拆分法得到128+8=136
6)01000000:拆分法得到0+64=64
7)00100000:拆分法得到0+0+32=32
8)00010000:拆分法得到0+0+0+16=16
9)01010000:拆分法得到0+64+0+16=80
其次我們來看划分子網的三級網絡結構,增加了一個子網掩碼的概念:人們提出了子網掩碼或掩碼的概念。子網掩碼有時叫做子網屏蔽碼。掩碼的概念同樣適用於沒有進行子網划分的A類、B類、C類地址。
A類,B類和C類地址掩碼:
簡單的說,子網掩碼就是由連續的1和連續的0組成,不會出現間隔的1和0,1表示網絡位,0表示主機位。
來看子網掩碼的表示,子網掩碼依然是由32位二進制數組成,如果一個B類的網絡號從主機位借位7位,由於B類的網絡號為16位,加上借位的7位(當做網絡位對待),就是23位網絡號,那么子網掩碼的的表示為:
標准B類地址:11111111 11111111 00000000 00000000
子網掩碼地址:11111111 11111111 11111110 00000000(借用主機號7位)
那么轉化為點分十進制的子網掩碼地址為:255.255.254.0
因此子網號為7的子網掩碼示意圖:
另外一種的子網掩碼的IP地址塊表示方法為:網絡地址/22(16個網絡號+6個借位主機位網絡號)
再來看廣播地址的概念:在A類、B類、C類IP地址中,如果主機號是全1(二進制),那么這個主機號為廣播地址。
簡單的來說,網絡廣播站地址的就是將網絡地址中的主機位全部置為零。
來看網絡廣播地址的表示,如果一個網絡地址為195.1.22.64/27的廣播地址具有考慮5位的主機號置1。由於64的二進制數為01000000,后5位的主機號置1之后為01011111(為十進制位95),那么網絡195.1.22.64/27的廣播地址為195.1.22.95。
最后來看CIDR地址聚合方法:
簡單來說,就是先將所有的IP地址塊寫成二進制數,從左向右找出相同的前綴,將他們聚合,相同的前綴不變,主機號全部置為零。
來看一個CIDR聚合的例題:某企業分配給產品部的IP地址塊為192.168.31.192/26,分配給市場部的IP地址塊為192.168.31.160/27,分配給財務部的IP地址塊為192.168.31.128/27,那么這三個地址經過聚合后的地址為多少:
1)首先就是將三個IP地址轉換為二進制數:
192.168.31.192 11000000 10101000 00011111 11000000
192.168.31.160 11000000 10101000 00011111 10100000
192.168.31.128 11000000 10101000 00011111 10000000
2)從上述轉換為二進制數后找出相同的前綴為24+1=25位,也就是前25位保持不變,將后面的主機號全部置為零,得到11000000 10101000 00011111 10000000
3)將聚合后的地址轉化為點分十進制得到:
11000000 10101000 00011111 10000000
192 168 31 128
4)因此聚合后地址為:192.168.31.128/25
以上三類基本上就是網絡技術IP地址的規划和設計所考的比較多的題目。