怎樣快速對二進制和十進制進行互轉化——IP地址規划與設計總結


轉至: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地址的規划和設計所考的比較多的題目。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM