怎样快速对⼆进制和⼗进制进⾏互转化——IP地址规划与设计
总结
最近⼀直在看全国计算机三级⽹络技术这本书,看到第⼆章的时候,不免会遇到计算机中最常⽤的进制转换问题。什么IP地址,什么⼦⽹掩码,什么⽹路地址,什么⼴播地址都会⽤到⼆进制和⼗进制的相互转化,⽽且最常⽤的是8位⼆进制数⼀组的转化,这就来总结相互转化最快的⽅法。
⾸先来认识标准分类的IP地址:
IP地址是由⽹络号与主机号组成的,长度是32bit,⽤点分⼗进制⽅法表⽰,这样就构成了标准分类的IP地址。常⽤
的A类、B类、C类IP地址采⽤包括“⽹络号-主机号”两层结构。通常采⽤的⽅式来表⽰,每个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
二进制转换10进制快捷方法
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地址的规划和设计所考的⽐较多的题⽬。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。