EXIT数制与码制EXIT数制码制本章小结第二章数制与码制EXIT数制与码制EXIT1.掌握十进制、二进制、八进制和十六进制2.熟练掌握进位计数制规则及相互转换3.熟练掌握各种常用码制和编码方式4.了解原码、反码和补码本章目标EXIT数制与码制EXIT为什么引入各种数制?数字系统中,为了便于电路的实现,采用二进制来表示各种命令或字符二进制数的缺点:可读性太差因此,在计算机程序设计中,采用八进制和十六进制来表示数的大小。二进制是计算机中所使用的计数制八进制和十六进制是编程使用的计数制十进制是人类习惯的计数制EXIT数制与码制EXIT2.1几种常用数制主要要求:掌握进位计数制了解八进制和十六进制。掌握十进制数和二进制数不同进制数之间的相互转换EXIT数制与码制EXIT一、数制基数和位权十进制数456.82的值为1210121210121210121()......RnnmnnnnnmimiimNaaaaaaaaRaRaRaRaRaRaRaR“基数”:进位计数制中所采用的数码的个数。R进制计数,进位规则是“逢R进1”,采用R个数码。R就是进制计数的基数。“几进制,基数就是几”处在不同数位的数码,代表不同的数值,每一个数位的数值大小由该位数码的值乘以处于该位的一个固定值,这个固定值就是该位的“权值”,称为“位权”。4×100+5×10+6×1+8×10-1+2×10-2EXIT数制与码制EXIT(一)十进制(Decimal)(xxx)10或(xxx)D例如(3176.54)10或(3176.54)D数码:0、1、2、3、4、5、6、7、8、91×1011×1005×10-11×10-2权权权权数码所处位置不同时,所代表的数值不同(11.51)10进位规律:逢十进一,借一当十10i称十进制的权10称为基数0~9十个数码称系数数码与权的乘积,称为加权系数十进制数可表示为各位加权系数之和,称为按权展开式(3176.54)10=3×103+1×102+7×101+6×100+5×10-1+4×10-2二、几种常见的数制EXIT数制与码制EXIT例如0+1=11+1=1011+1=10010–1=1(二)二进制(Binary)(xxx)2或(xxx)B例如(1011.11)2或(1011.11)B数码:0、1进位规律:逢二进一,借一当二权:2i基数:2系数:0、1按权展开式表示(1011.11)2=1×23+0×22+1×21+1×20+1×2-1+1×2-2将按权展开式按照十进制规律相加,即得对应十进制数。=8+0+2+1+0.5+0.25(1011.11)2=(11.75)10=11.75(1011.11)2=1×23+0×22+1×21+1×20+1×2-1+1×2-2EXIT数制与码制EXIT(三)八进制和十六进制进制数的表示计数规律基数权数码八进制(Octal)(xxx)8或(xxx)O逢八进一,借一当八80~78i十六进制(Hexadecimal)(xxx)16或(xxx)H逢十六进一,借一当十六160~9、A、B、C、D、E、F16i例如(437.25)8=4×82+3×81+7×80+2×8-1+5×8-2=256+24+7+0.25+0.078125=(287.328125)10例如(3BE.C4)16=3×162+11×161+14×160+12×16-1+4×16-2=768+176+14+0.75+0.015625=(958.765625)10EXIT数制与码制EXIT二、不同数制间的关系与转换对同一个数的不同计数方法(一)不同数制间的关系二、不同数制间的关系与转换不同数制之间有关系吗?十进制、二进制、八进制、十六进制对照表77011176601106550101544010043300113220010211000110000000十六八二十F17111115E16111014D15110113C14110012B13101111A121010109111001981010008十六八二十返回EXIT数制与码制EXIT(二)不同数制间的相互转换1.各种数制转换成十进制按权展开求和【例1-1】将二进制(1010.11)2转换成十进制数。1311221010(1010.11)212121212(820.50.25)(10.75)niiima解:【例1-2】将八进制(27.2)8转换成十进制数。解:110181010(27.2)8287828(1670.25)(23.25)niiimaEXIT数制与码制EXIT(二)不同数制间的转换2.十进制数转换为R进制数任意一个十进制数N可以由整数部分和小数部分构成,设整数部分为N1,小数部分为N2,则(N)10=(N)R=(N1)10+(N2)101122110122112012()ninninnimmmNaRaRaRaRaRaaRaRaR整数部分:122111012210()nnnnNaRaRaRaRa小数部分:12(1)21012(1)()mmmmNaRaRaRaREXIT数制与码制EXIT对于整数部分:“除R取余”两边同时除以R基数,得余数为,整数部分为0a2311221nnnnaRaRaRa再除以R基数,其余数为,整数部分则为1a3411232nnnnaRaRaRaR该方法为除以取余法,逆序排列,其中R为基数。以此方法,可将十进制的整数转换成任意进制的整数。以此类推,可以得到进制整数部分的所有数码(i=0,1,2,…n-1)逆序排列。iaEXIT数制与码制EXIT对于小数部分:“乘R取整”等式两边同时乘以基数,得整数部分为,小数部分为R1a12(2)123(1)mmmmaRaRaRaR再乘以基数,得整数部分为,小数部分则为2aR12(3)234(1)mmmmaRaRaRaR这样,可以得到进制小数部分的所有数码(i=0,1,2,…n-1),该方法为乘以取整法,顺序排列。iaR如果乘以到最后,还有小数存在,可根据转换误差要求设定位数。EXIT数制与码制EXIT1.5001整数0.7500十进制转换为二进制[例1-3]将十进制数(26.375)10转换成二进制数26613011012(26)10=(11010)2×2×21.0001.37522220.375×2一直除到商为0为止余数130整数和小数分别转换整数部分:除2取余法小数部分:乘2取整法读数顺序读数顺序.011EXIT数制与码制EXIT()%1.039.010。到精度达转换成二进制数,要求将十进制小数[例1-4]解由于精度要求达到0.1%,需要精确到二进制小数10位,即1/210=1/1024。0.39×2=0.78b-1=00.78×2=1.56b-2=10.56×2=1.12b-3=10.12×2=0.24b-4=00.24×2=0.48b-5=00.48×2=0.96b-6=00.96×2=1.92b-7=10.92×2=1.84b-8=10.84×2=1.68b-9=10.68×2=1.36b-10=1所以()()2100110001111.039.0EXIT数制与码制EXIT技巧:直接由数权表实现十进制→二进制27262524232221202-12-22-3对于较大的十进制数,采用除2取余法和乘2取整法运算量大,可通过列出数权表观察的方法进行转换。12864321684210.50.250.125①按下表列出二进制的数权表;②观察数权表,根据待转换的数的大小,决定相应权位值填0还是填1;③填0/1时从按从高→低(左→右)的顺序进行;④每次填0/1时,已填1的位权值之和不大于待转换的数;⑤直至各填1的位权值之和等于待转换数即可。例:(243.75)10=(?)211110011110思考:若待转换的数255?EXIT数制与码制EXIT()5310转换成八进制数。将十进制数[例1-5]解由于八进制数基数为8,所以逐次除以8取其余数:538680商余数56所以()()8106553[例1-6]试将(63)10十进制数转换成十六进制数。解由于十六进制数基数为16,所以逐次除以16取其余数:63/16=3余数为15(F)=F3/16=0余数为3=3所以,(63)10=(3F)160a1a4.十进制转换为八、十六进制EXIT数制与码制EXIT每位八进制数用三位二进制数代替,再按原顺序排列。八进制→二进制5.二进制与八、十六进制间的相互转换二进制→八进制(11100101.11101011)2=(345.726)8(745.361)8=(111100101.011110001)2补0(11100101.11101011)2=(?)811100101.1110101100345726从小数点开始,整数部分向左(小数部分向右)三位一组,最后不足三位的加0补足三位,再按顺序写出各组对应的八进制数。补01110010111101011去关系对照表EXIT数制与码制EXIT一位十六进制数对应四位二进制数,因此二进制数四位为一组。(10011111011.111011)2=(4FB.EC)16(3BE5.97D)16=(11101111100101.100101111101)2补0(10011111011.111011)2=(?)1610011111011.111011004FBEC0十六进制→二进制:每位十六进制数用四位二进制数代替,再按原顺序排列。二进制→十六进制:从小数点开始,整数部分向左(小数部分向右)四位一组,最后不足四位的加0补足四位,再按顺序写出各组对应的十六进制数。补010011111011111011利用二进制数作桥梁,可以方便地将十进制数转换为十六进制数。EXIT数制与码制EXIT编码:按一定的方式将0、1数码进行编排来表示特定的含义数字系统中,数码可用来表示数的大小,也可以表示不同的字符和命令2.2编码表示不同的字符和命令时,称为代码用数码的特定组合表示特定信息的过程称编码EXIT数制与码制EXIT例如:用四位二进制数码表示十进制数0~90000→00001→10010→20011→30100→40101→50110→60111→71000→81001→9将若干个二进制数码0和1按一定规则排列起来表示某种特定含义的代码称为二进制代码,简称二进制码。二进制代码常用二进制代码自然二进制码二-十进制码格雷码奇偶检验码ASCII码(美国信息交换标准代码)EXIT数制与码制EXIT例如:用三位自然二进制码表示十进制数0~7:000→0001→1010→2011→3100→4101→5110→6111→7(一)自然二进制码按自然数顺序排列的二进制码(二)二-十进制代码表示十进制数0~9十个数码的二进制代码(又称BCD码即BinaryCodedDecimal)1位十进制数需用4位二进制数表示,故BCD码为4位。4位二进制码有16种组合,表示0~9十个数可有多种方案,所以BCD码有多种。N个特定信息需代码表示,所需二进制代码的位数n(码长)。2n≥NBCD分为有权码和无权码两大类EXIT数制与码制EXIT常用二-十进制代码表权为8、4、2、1比8421BCD码多余3取四位自然二进制数的前10种组合,去掉后6种组合1010~1111。编码种类十进制数有权码无权码8421码2421码5421码5121码1215码余三码移存码0000000000000000000000011000110001000100010001001001000010200100010001000100100010101003001100110011011001