计算机中的数制与编码一、计算机中的数制1、基本概念(1)基数数制中所需要基本的数字字符的总个数,称为基数。计算机中的数制与编码(2)位权在一个数中,数码在不同的数位上所表示的数值是不同的。每个数码所表示的数值就等于该数码本身乘以一个与它所在数位有关的常数,这个常数叫做位权,简称权。计算机中的数制与编码2、计算机中常用的数制(1)十进制数(D)它是由0~9组成,逢十进一的进位计数制,其基数为10,权为10i。(2)二进制数(B)它是由0和1组成,逢二进一的进位计数制,其基数为2,权为2i。计算机中的数制与编码(3)八进制数(Q)它是由0~7组成,逢八进一的进位计数制,其基数为8,权为8i。(4)十六进制数(H)它是由0~9,A~F(或a~f)共16个不同数码组成,逢十六进一的进位计数制,其基数为16,权为16i。计算机中的数制与编码3、不同数制间的转换(1)十进制整数数转换成R进制数十进制整数转换成R进制整数采用“除R取余”法。具体方法为:将十进制数除以R,得到一个商数和一个余数,再将商数除以R,又得到一个商数和一个余数,继续该过程,直到商数等于零为止。每次得到的余数就是对应的二进制数的各位数字。计算机中的数制与编码【例】将十进制数69转换成二进制数。解析:将十进制数69转换成二进制数的过程如下:2|692|34余数为12|17余数为02|8余数为12|4余数为02|2余数为02|1余数为00余数为1,商为0,结束因此,(69)10=(1000101)2 计算机中的数制与编码(2)十进制小数转换成R进制小数十进制小数转换成R进制小数采用“乘R取整”法。具体方法为:用R乘十进制小数,得到一个整数部分和一个小数部分,再用R乘小数部分,又得到一个整数部分和一个小数部分,继续该过程,直到余下的小数部分为0或满足精度要求为止。最后将每次得到的整数部分从左到右排列,即得到所对应的二进制小数。计算机中的数制与编码(3)一般十进制数转换成R进制数为了将一个既有整数部分又有小数部分的十进制数转换成R进制数,可以将其整数部分和小数部分分别转换,然后再组合起来。例如:(69)10=(1000101)2(0.6875)10=(0.1011)2则有(69.6875)10=(1000101.1011)2计算机中的数制与编码【例】将十进制小数0.6875转换成二进制小数。解析:将十进制小数0.6875转换成二进制小数的过程如下:0.6875×21.3750整数部分为10.3750余下的小数部分×20.7500整数部分为00.7500余下的小数部分×21.5000整数部分为10.5000余下的小数部分×21.0000小数部分为0计算机中的数制与编码(4)R进制(二、八、十六)进制数转换为十进制数Rmnnaaaaaaa).(21011mmnnnnRaRaRaRaRaRaRa2211001111把R进制数转换为十进制数,通常采用按权展开相加的方法,即各位数分别乘以对应的权值,再求和。计算机中的数制与编码【例】把二进制数(1011.101)2转换成十进制数。(1011.101)2=1×23+0×22+1×21+1×20+1×2-1+0×2-2+1×2-3=8+0+2+1+0.5+0+0.125=(11.625)10计算机中的数制与编码【例】把八进制数(123.45)8转换成十进制数。(123.45)8=1×82+2×81+3×80+4×8-1+5×8-2=(83.578125)10【例】把十六进制数(3AF.4C)16转换成十进制数。(3AF.4C)16=3×162+10×161+15×160+4×16-1+12×16-2=(943.296875)10计算机中的数制与编码(5)二、八、十六进制数之间的转换①二进制转换成八进制以小数点为基准,整数部分从右向左、小数部分从左向右,按每三位二进制数一组转换成一位八进制数,不足部分补零。每组二进制数按权为4、2、1方式相加展开。计算机中的数制与编码②二进制转换成十六进制以小数点为基准,整数部分从右向左、小数部分从左向右,按每四位二进制数一组转换成一位十六进制数,不足部分补零。每组二进制数按权为8、4、2、1方式相加展开。计算机中的数制与编码③八进制转换成二进制以小数点为基准,按每位八进制数转换成三位二进制数的原则进行,而每位八进制数转换时按“除基取余法”进行。计算机中的数制与编码④十六进制转换成二进制以小数点为基准,按每位十六进制数转换成四位二进制数的原则进行,而每位十六进制数转换时也按“除基取余法”进行。计算机中的数制与编码⑤八进制与十六进制数相互转换一般以二进制数作桥梁转换。例如:10110101.1011B=010110101.101100B=265.54Q110011.110110B=63.66Q11110110101.10101B=7B5.A8H110011.110110B=33.D8H72.26Q=111010.01011B=32.58H计算机中的数制与编码二、计算机中的编码(1)字符编码①字符:数字、字母、通用符号和控制符号统称为字符。②字符编码:来表示字符的二进制代码称为字符编码,字符编码有多种形式。计算机中的数制与编码③ASCⅡ码:国际上普遍采用的一种字符编码是美国标准信息交换代码,它包括7位代码,ASCⅡ码共四类128个常用字符,其中:数字0~9。字母52个:包括26个大写英文字母和26个小写字母。通用符号32个:如*、:、%、=等。控制符号34个:如ESC、CR等。计算机中的数制与编码(2)汉字编码①国标码:1981年,我国制定了中华人民共和国国家标准《信息交换用汉字编码字符集—基本集》,代号为:“GB2312-80”,这种编码简称为国标码。②区位码:由于信息传输的原因,每个汉字的区号和位号必须加上20H之后,它的相应的二进制代码才是它的国标码,即区位码=国标码-2020H。计算机中的数制与编码③机内码:汉字机内码是指在计算机中表示汉字的编码。即机内码=国标码+8080H。计算机中的数制与编码例如,“啊”字的区位码是1601,则它的国标码是3021H,其汉字机内码是B0A1H。即:1001H(区位码)+2020H=3021H(国标码)3021H(国标码)+8080H=B0A1H(机内码)