《深入理解计算机网络》教学PPT——开启你计算机网络之门的金钥匙图书作者:王达制作第1章数制与编码“数制”是“数据进制”的简称。常见的数制有二进制、八进制、十进制和十六进制。本章将介绍这几种数制的计算,不同数制之间转换方法,以及二进制的四则算术运算和逻辑运算方法。另外,在计算机数据编码形式中主要有原码、反码和补码三种,本章将介绍它们各自的计算方法,以及它们之间的相互转换方法。2012年12月王达精品课程系列教学PPT21.1数制概述1.1.1常见数制类型及表示方法•十进制(Decimal)十进制基数为10,标志字母为D,或用下标10表示,如(1250)D或(1250)10。•二进制(Binary)二进制基数为2,标志字母为B,或用下标2表示,如(1001010)B或(1001010)2。《深入理解计算机网络》教学课件31.1.1常见数制类型及表示方法(续)•八进制(Octal)八进制基数为8,标志字母为O或者Q,或用下标8表示,如(4603)O或(4603)Q,或者(4603)8。•十六进制(Hexadecilnal)十六进制基数为16,标志字母为H,或用下标16表示,如(49AB)H,或(49AB)16。《深入理解计算机网络》教学课件41.1.2不同数制之间的对应关系表1-1不同数制的对应关系《深入理解计算机网络》教学课件5二进制数对应的十进制数对应的八进制数对应的十六进制数000011111022211333100444101555110666111777100081081001911910101012A10111113B11001214C11011315D11101416E11111517F1.2不同数制间的相互转换1.2.1非十进制数转换成十进制数1.二进制转换为十进制•二进制整数转换成十进制整数的公式:bn-1×2n-1+bn-2×2n-2…+b1×21+b0×20•二进制小数转换成十进制小数的公式:bn-1×2-1+bn-1×2-2…+b1×2-(n-1)+b0×2-n《深入理解计算机网络》教学课件6《深入理解计算机网络》教学课件72.八进制转换为十进制•八进制整数转换成十进制整数的公式:bn-1×8n-1+bn-2×8n-2…+b1×81+b0×80•八进制小数转换成十进制小数的公式:bn-1×8-1+bn-2×8-2…+b1×8-(n-1)+b0×8-n3.十六进制转换为十进制•十六进制整数转换成十进制整数的公式:bn-116n-1+bn-2×16n-2…+b1×161+b0×160•十六进制小数转换成十进制小数的公式:bn-1×16-1+bn-2×16-2…+b1×16-(n-1)+b0×16-n4.同步练习(略)1.2.2十进制数转换成非十进制数十进制数转换成非十进制数的方法是:整数部分的转换用“除基取余法”,也就是用基数相除,然后反序(由后向前取)取余数;小数部分的转换用“乘基取整法”,也就是用基数相乘,然后正序(由前向后取)取得到的整数。《深入理解计算机网络》教学课件81.十进制转换为二进制十进制整数转换成二进制的方法十进制整数转换为二进制的方法是采用“除2逆序取余”法(采用短除法进行)。十进制小数转换成二进制的方法十进制小数转换为二进制的方法是采用“乘2正序取整”法。《深入理解计算机网络》教学课件92.十进制转换成八进制十进制整数转换为八进制整数十进制整数转换为八进制整数是采用“除8逆序取余”的方法。十进制小数转换为八进制小数十进制小数转换为八进制小数是采用“乘8正序取整”法。《深入理解计算机网络》教学课件103.十进制转换成十六进制十进制整数转换为十六进制整数十进制整数转换为十六进制整数采用“除16逆向取余”方法。十进制小数转换为十六进制小数十进制小数转换为十六进制小数采用“乘16正序取整”方法。《深入理解计算机网络》教学课件114.同步练习(略)1.2.3非十进制数之间的相互转换八进制数转换成二进制数将每1位八进制数直接用相应的3位二进制来表示。二进制数转换成八进制数以小数点为边界,整数部分向左,小数部分向右,将每3位二进制分成一组(不足3位则用0补足),将每一组二进制数用1位八进制来表示。《深入理解计算机网络》教学课件121.相互转换1.2.3非十进制数之间的相互转换(续)十六进制数转换成二进制数将每1位十六进制数直接用相应的4位二进制来表示。二进制数转换成十六进制数以小数点为边界,整数部分向左,小数部分向右将每4位二进制数分成一组(不足4位则用0补足),将每一组二进制数用相应的1位十六进制表示。《深入理解计算机网络》教学课件131.2.3非十进制数之间的相互转换(续)八进制与十六进制的相互转换先把其中一个转换成二进制,然后再把所得到的二进制按照前面介绍的方法转换成另一种进制的数。当然也可以直接对每一位进行转换,它们之间的对应关系参见表1-1。2.同步练习(略)《深入理解计算机网络》教学课件141.3二进制数运算1.3.1二进制四则算术运算1.加、减法运算•加法运算法则:0+0=0,0+1=1,1+0=1,1+1=10•减法运算法则:1-1=0,1-0=1,0-0=0,0-1=1《深入理解计算机网络》教学课件152.乘、除法运算•乘法运算法则:0×0=0,0×1=0,1×0=0,1×1=1•除法运算法则:当被除数大于除数时,商是“1”;当被除数小于除数时,商只能是“0。3.同步练习”(略)《深入理解计算机网络》教学课件161.3.2二进制逻辑运算1.“与”运算(AND)“与”运算法则:0∧0=00∧1=01∧0=01∧1=12.“或”运算(OR)“或”算法则:0∨0=00∨1=11∨0=11∨1=1《深入理解计算机网络》教学课件171.3.2二进制逻辑运算(续)3.“非”运算(NOT)“非”运算法则为:“0”的反值为“1”,“1”的反值为“0”。4.“异或”运算(XOR)“异或”运算法则为:0⊕0=00⊕1=11⊕0=11⊕1=0《深入理解计算机网络》教学课件185.同步练习(略)1.4二进制数的表示形式1.4.1二进制数的真值和字长二进制数有“有符号数”和“无符号数”两种。“无符号数”的每一位都代表对应位的数值;而在“有符号数”中规定最高位用来表示数据符号的,1代表为负,0代表为正。无符号数的“真值”就是数本身,而有符号数的“真值”是不计算符号位所得到的值。例:00100001的真值=00100001=+33,而10100011的真值=10100011=-35。《深入理解计算机网络》教学课件191.4.1二进制数的真值和字长(续)“字长”是指计算机一次可处理的二进制数的码位长度,是计算机进行数据存储和数据处理的运算单位。如我们通常所指的32位处理器,就是指该处理器的字长为32位,也就是一次能处理32位二进制数。“字长”越长代表计算机的处理能力越强,可以处理的数也越大。如现在普遍是64位的了,这样一来计算机可以处理的二进制数码位长度最大为64位。《深入理解计算机网络》教学课件201.4.2二进制数的四种表示形式1.原码“原码”就是“原始码位”,是对应二进制数本身所代表的形式。正数的符号位(最高位)为“0”,负数的符号位为“1”。在原码表示形式中,0有“+0”和“(-0)”之分。对应的原码分别是00000000和10000000。2.补码“补码”的编码规则:正数的补码与原码相同;负数的补码是通过先把除符号位外其它各位取反(也就是下面将要介绍的“反码”),然后再在末位(最低位)加1得到的。《深入理解计算机网络》教学课件211.4.2二进制数的四种表示形式(续)3.反码“反码”专门是针对负数进行的(正数的反码与原码一样),是对二进制负数按位(除符号位外)取反得到的。4.移码“移码”的编码规则如下:•正数的符号位为1,负数的符号位为0(与原码的表示方法恰好相反);•真值部分与补码一样。要求一个二进制数的移码,只需先求出它的补码,然后再把符号位取反就行了,所以移码也称为“符号位取反的补码”。《深入理解计算机网络》教学课件221.4.3补码的加减法运算1.补码的转换如果是正数,则其补码与原码、补码一样;如果是负数,则其补码是在它的反码未位加1得到。2.补码的加法运算运算法则:[X+Y]补=[X]补+[Y]补。即两个有符号数相加的补码可以通过先分别对两个数求补码,然后相加得到。《深入理解计算机网络》教学课件233.补码的减法运算运算法则:[X-Y]补=[X]补+[-Y]补即求两个机器数的差值(如[X-Y]补)的补码,可以通过求被减数的补码(如[X]补)与减数的负值的补码([-Y]补)的和得到。4.同步练习(略)《深入理解计算机网络》教学课件24