天天看點

IP和32位無符号整數互相轉換

1、IP位址轉換為32位無符号整數

原理:IP位址每段可以看成是8位無符号整數即0-255,把每段拆分成一個二進制形式組合起來,然後把這個二進制數轉變成

一個無符号32為整數。

舉例:一個ip位址為10.0.3.193

每段數字 相對應的二進制數

10 00001010

0 00000000

3 00000011

193 11000001

組合起來即為:00001010 00000000 00000011 11000001,轉換為10進制就是:167773121,即該IP位址轉換後的數字就是它了。

2、32位無符号整數轉換為IP位址

原理:把這個32位無符号整數轉換成一個32位二進制數。從左到右,每8位進行一下分割,得到4段8位的二進制數,把這些二進制數轉換成整數然後加上”.”就是這個ip位址了

舉例:167773121

二進制表示形式為:00001010 00000000 00000011 11000001

分割成四段:00001010,00001010,00000011,11000001,分别轉換為整數後加上“.”就得到了10.0.3.193。

3、子網

    IP位址               11000000.10101000.00000001.********  (192.168.1.*)

    子網路遮罩             11111111.11111111.11111111.00000000  (255.255.255.0)

    AND運算得到子網位址  11000000.10101000.00000001.00000000  (192.168.1.0)

    192.168.0.2/24中的24表示有24個二進制1和8個0組成掩碼,即255.255.255.0,

    即11111111 11111111 11111111 00000000

本文轉自 h2appy  51CTO部落格,原文連結:http://blog.51cto.com/h2appy/1561875,如需轉載請自行聯系原作者