计算机网络基础
上QQ阅读APP看书,第一时间看更新

2.1 进制转换

2.1.1 二进制

有人说,在计算机上填写IP地址时,填的都是十进制数,为什么还要掌握二进制呢?

如果你的目标不只是成为一个普通的网络用户,而是成为一个能为普通网络用户服务的网络工程、网络维护、网络设计人员,那么就必须非常熟练地掌握二进制。平常所看到的十进制数的IP地址,是通过二进制的IP地址转换出来的,IP地址以十进制数表示是为了记忆和使用的方便。在设计网络时,规划IP地址都是以二进制作为根本的。

1. 二进制的理解

“二进制”,顾名思义,就是逢二进一。为了让读者能迅速直观地理解二进制的表示方式,这里使用人们更熟悉的十进制来帮助理解。

(1)各位数字的组成

在十进制中,组成十进制数的数字是0、1、2、3、4、5、6、7、8、9,共有10个数字供选择。如3609这个数字,每一位数字都在0~9的范围内;对应于二进制数,组成二进制数的各位数字是0或1,如10011010就是一个二进制数,而10280就不是二进制数,因为其中的2和8两个数字不能用来组成二进制数。

(2)进制

这里涉及一个“权”的概念,可将权简单理解为权重的大小。如十进制的3609,个位数9的权为1,十位数0的权为10,百位数6的权为100,千位数3的权为1000,3×1000+6×100+0×10+9×1=3609;对于二进制数10011010,就应该是“前一数位的权比后一数位的权大2倍”,因此二进制数10011010中各数位的权如图2-1所示。

图2-1 二进制数中各数位的权

此二进制数对应的十进制数就是0×1+1×2+0×4+1×8+1×16+0×32+0×64+1×128=154。

2. 二进制与十进制间的转换

(1)二进制向十进制转换

在网络的IP地址中,需要向十进制转换的二进制数最多是8位的,如11100101,在转换时,要做到心中有上面那张表的形式:所有数字1所在数位的权值相加,凡是为0的数位,不去理它。在这个过程中,从最后个位开始往高位做权值的加法,即可完成二进制向十进制的转换:1+4+32+64+128=229。

(2)十进制向二进制的转换

在网络的IP地址中,通常要将一个不大于255的数字转换为8位二进制数。为了达到快速转换,应该先记住8位二进制数中每个数位的权值:从高到低分别为128、64、32、16、8、4、2、1(从128开始依次减半),可以用“扣减法”快速完成转换。例如将十进制的186转为二进制,首先看这个数有没有包含一个128,因为186大于128,包含128,二进制最高位记1;然后用186减128,等于58,再看58里没有包含64,1的后面记0(注意,如果记1,则无论后面的数字是几都将使所得的8位二进制数大于186);再看58里有没有包含32,有,10后记1;用58减32得26;看26里有没有16,有,101后记1;用26减16得10,看10里有没有8,有,1011后记1;用10减8得2,里面没有包含4,10111后记0,所以完成后就是10111010这个二进制数。

上面这个转换实例如果使用短除法可以更快捷,基本上不需要草稿纸就可以完成。