计算机中的IP地址都是以十进制的形式呈现的,但是计算机又只能识别以二进制编写的语言,所以就经常需要将十进制数字转化为二进制数字或者是将二进制数字转化为十进制。
十进制指的是以0,1,2,3,4,5,6,7,8,9编码的数字,二进制则是以0和1编码的数字。目前,国际上使用最多的IP地址是32位二进制编写的IPV4地址。但是由于IPV4地址最多可以有2**32个地址,有一定的局限性,IPV6地址则是由128位二进制编写的,其地址数量更多,有2**128个。
二进制数最大不能大于1,每次加1,出现2时,便向上一位进1,简称逢2进 1。
例如:
二进制 | 十进制 |
0 | 0 |
1 | 1 |
10 | 2 |
11 | 3 |
... | ... |
以IPV4地址为例:
00000001 == 1 => 2**0
00000010 == 2 => 2**1
00000100 == 4 => 2**2
00001000 == 8 => 2**3
00010000 == 16 => 2**4
00100000 == 32 => 2**5
01000000 == 64 => 2**6
10000000 == 128 => 2**7
十进制 ---> 二进制 ----> 凑
例如:
192.168.2.4
128 64 32 16 8 4 2 1
11000000
10101000
00000010
00000100
即 11000000.10101000.00000010.00000100
二进制 ---> 十进制 ----> 加
例如:
128 64 32 16 8 4 2 1
11110001
128 + 64 +32+16+1=241
11110011
128+64+32+16+2+1=243
01011010
64+16+8+2=90
10001101
128+8+4+1=141
11100010.11100101.01001001.10110010