1.3 网络工程师考试中的数学题

纯粹的数学也叫基础数学,专门研究数学本身的内部规律。学校课本里介绍的代数、几何、微积分、概率论知识,都属于纯粹数学。纯粹数学的一个显著特点就是暂时撇开具体内容,以纯粹形式研究事物的数量关系和空间形式。网络中遇到的数学却是实实在在解决具体问题的算法。

1.3.1 糟糕的考试

我国的网络工程师考试一年考两次,5月份和11月份各一次,我们单位的小李(网管员)在上半年的考试中没有顺利通过。这位老兄只差2分就通过考试了,我能理解他收到成绩单时郁闷的心情。在聊天时,他回忆“计算机科学基础”部分中的很多数制计算题都拿不准,好像其中一道题就是让写出168的二进制数是多少?没有想到这么基础的知识他却没有通过,看来需要补补课了。

其实数制计算题并不难,我找出很早以前的复习笔记交给了他,希望能对他在下半年的考试复习中有所帮助。

1.3.2 考试复习笔记

数据制式就是数据的进位计数原则,也是人们利用符号来计数的科学方法,又称为进位计数制,简称“数制”或“进制”。简单地说,数制就是用一组固定的数码和一套统一的规则来表示数值的方法。我们最熟悉的应该是十进制数进行计数,其实在现实生活中也使用其他进制,如用六十进制计时,用十二进制作为月到年的进制等。

在计算机通信中,最常用到的就是二进制数,有时需要在不同制式中相互转换,如在配置注册表、计算机IP地址、子网掩码、IPv6、路由器寄存器地址等,所以数据制式的转换就成为了网络管理员所必须掌握的一项基本功。

第1课:数制的表示

复习笔记中的第1课数制表示,常用的数制包括如下几个:

1)二进制

计算机利用电子开关(On或Off)来对数据进行操作和存储。在计算机系统中采用的是二进制数,只有“0”和“1”两个数,其主要原因是便于进行电路设计,使数据运算更简单,可靠性更强。

二进制的数即基数为2。二进制的特点为:逢二进一,借一当二。一个二进制数各位的权是以2为底的幂。例如:二进制数1101表示十进制数13

(1101)2 = 1×23+1×22+0×21+1×20=8+4+0+1=13

2)十进制

十进制数是人们最熟悉的一种进位计数制,它由0、1、2…、8、9共10个数码组成,即基数为10。十进制的特点为:逢十进一,借一当十。一个十进制数各位的权是以10为底的幂。

3)八进制

由0、1、2、3、4、5、6、7共8个数码组成,即基数为8。八进制的特点为:逢八进一,借一当八。

4)十六进制

由0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F 16个数码组成,即基数为16。十六进制的特点为:逢十六进一,借一当十六。

表1-1中是四位二进制数与其他数制的对应关系。

表1-1 二进制与其他数制的对应

第2课:数制转换与运算

复习笔记中的第2课数制转换与运算。需要掌握数制间的转换有:二→十进制、八→十进制、十六→十进制、二→八→十六进制的转换。至于数制之间的运算,很多时候是通过转换到二进制以后再进行计算的。

1)数制的转换

在转换中常用的方法有按权展开多项式法、基数除/乘法和基数为2n的各种进制之间的直接转换法。一般二、八、十六进制转换为十进制采用多项式法;十进制数转换为二、八、十六进制数采用:基数除/乘法;而基数为2n的各种进制间的转换采用:直接转换法。

(1)二进制、八进制、十六进制数转换换为十进制

对于任何一个二进制、八进制数、十六进制数,可以写出它的按权展开式,再按十进制进行求和运算即可转换为十进制数,如:

(1111.11)2=1×23+1×22+1×21+1×20+1×2-1+1×2-2=15.75

(2)十进制数转换为二进制数

十进制数的整数部分和小数部分在转换时需进行不同的计算,分别求值后在组合。整数部分采用除2取余数,即逐次除以2,直至商为0,得出的余数倒排,即为二进制各位的数码。小数部分采用乘2整数,即逐次乘以2,从每次乘积的整数部分得到二进制数各位的数码。

小李考试中遇到了“168转成二进制表示”一题,就可以按照以下步骤计算:

第1步:将168除以2,商84,余数为0;

第2步:将商84除以2,商42余数为0;

第3步:将商42除以2,商21余数为0;

第4步:将商21除以2,商10余数为1;

第5步:将商10除以2,商5余数为0;

第6步:将商5除以2,商2余数为1;

第7步:将商2除以2,商1余数为0;

第8步:将商1除以2,商0余数为1;

第9步:读数,因为最后一位是经过多次除以2才得到的,因此它是最高位,读数字从最后的余数向前读,即10101000 。

(3)二进制数转换成八进制

二进制数转换成八进制数的方法是:将二进制数从小数点开始,对二进制整数部分向左每3位分成一组,对二进制小数部分向右每3位分成一组,不足3位的分别向高位或低位补0凑成3位。每一组有3位二进制数,分别转换成八进制数码中的一个数字,全部连接起来即可。

反过来,将八进制数制转换成二进制数,只要将每一位八进制数转换成相应的3位二进制数,依次连接起来即可。

(4)二进制数与十六进制数的相互转换

二进制数与十六进制数的相互转换方法和二进制数的转换方法相类似。二进制数转换十六进制数,只要把每次4位分成一组,再分别转换成十六进制数码中的一个数字,不足4位分别向高位或低位补0凑成4位,全部连接起来即可。反之,十六进制数转换成二进制数,只要将每一位十六进制数转换成4位二进制数,依次连接起来即可。其他数制之间的转换可以通过二进制数作为中间桥梁,先转换为二进制数,再转换为其他进制数。

2)二进制的运算规则

在计算机中,采用二进制数可以非常方便地实现各种算术运算和逻辑运算。

(1)算术运算规则

■ 加法规则:0+0=0;0+1=1;1+0=1;1+1=10。

■ 减法规则:0-0=0;10-1=1;1-0=1;1-1=0。

■ 乘法规则:0×0=0;0×1=0;1×0=0;1×1=1。

■ 除法规则:0/1=0;1/1=1。

(2)逻辑运算规则

■ 逻辑与运算(AND):0∧0=0;0∧1=0;1∧0=0;1∧1=1。

■ 逻辑或运算(OR):0∨0=0;0∨1=1;1∨0=1;1∨1=1。

■ 逻辑非运算(NOT):1=0;0=1。

■ 逻辑异或运算(XOR):0⊕0=0;0⊕1=1;1⊕0=1;1⊕1=0。

第3课:比特和字节

通过前两节课的复习,我们知道了计算机中的数据都要采用不同的二进制位来表示,为了方便表示数据量的多少,引入了数据单位概念。

1)位(bit)

简记为“b”,也称为比特,是计算机存储数据的最小单位。一个二进制位只能表示0或1,要想表示更大的数,就得把更多的位组合起来,每增加一位,所能表示的数就增大一倍。

2)字节(Byte)

来自英文Byte,简记为“B”,规定1B=8bit,字节是存储信息的基本单位。微型机存储器是由一个个存储单位构成的 ,每一个存储单位的大小就是一个字节。所以存储器容量的大小也可以用字节数来度量。其他常用的度量单位有:KB﹑MB﹑GB和TB,其换算关系为:1TB=1 024GB;1GB=1 024MB;1MB=1 024KB;1KB=1 024B。

提示

计算机中还有一个常用的数据单位:字(Word)。

计算机处理数据时,CPU通过数据总线一次存取、加工和传送的数据称为“字”,计算机的运算部件能同时处理的二进制数据的位数称为“字长”。一个字长通常由一个字节或若干字节组成。由于字长是计算机一次所能处理的实际位数长度,所以字长是衡量计算机性能的一个重要指标。字长越大,速度越快,精度越高。