第三讲计算机中的进制转换与信息编码宾日晖老师数据在计算机中的表示在计算机内部,所有的数据或信息都要表示成计算机能识别的二进制代码的方式,才能进行存储、传输和处理。二进制在物理上容易实现。二进制运算规则简单。采用二进制逻辑性强。计算机内部采用二进制原因基数是最大进位数(进制数),例如:十进制基数为10;六十进制(时间)的基数为60等数符每个数位上的值。例如:234百位数符为2,十位数符3,个位数符4。位数数符的个数。例如:十进制数234的位数为3;二进制数11010011的位数为8。位权:不同位上数字的单位值1.数制的基本概念⑴十进制数(Decimal)特点:数值用0~9表示,逢十进一。十进制通式为:s10=an×10n-1+...+a1×100+a-1×10-1+...+a-m×10-m其中:“10”为十进制数的基数整数部分,n为整数部分位数小数部分,m为小数部分位数2.计算机的数制(2)二进制数(Binary)特点:0或1,逢二进一。二进制数的通式为:s2=an×2n-1+...+a1×20+a-1×2-1+a-m×2-m例如:1+1=1011+1=100而不等于122.计算机的数制(3)八进制(Octal)特点:数字为0~7,逢八进一。八进制数的通式为:s8=an×8n-1+...+a1×80+a-1×8-1+a-m×8-m例如:7+1=10而不等于82.计算机的数制十六进制数的通式为:S16=an×16n-1+...+a1×160+a-1×16-1+...+a-m×16-m例如:9+1=(4)十六进制(Hexadecimal)特点:每位可取数字0~9和英文字母A(10)、B(11)、C(12)、D(13)、E(14)、F(15)的任意一个,逢十六进一。A而不等于10F+1=102.计算机的数制十进制(D)二进制(B)八进制(O)十六进制(H)0000101112102231133410044510155611066711177810001089100111910101012A11101113B2.计算机的数制二进制数、八进制数、十六进制数与十进制数对照表例1:将二进制整数(1010101)2转换成十进制整数。(1010101)2=1×26+0×25+1×24+0×23+1×22+0×21+1×20=64+16+4+1=(85)103.二进制与十进制间的转换(1)二进制数转换成十进制数例2:将二进制小数(11010.101)2转换成十进制数(11010.101)2=1×24+1×23+1×21+1×2-1+1×2-3=16+8+2+0.5+0.125=(26.625)10(1)二进制数转换成十进制数(a)纯整数部分的转换:“除2倒取余”故:(307)10=(100110011)223072余1余1762382192924222120余1余1余0余0余0余0余1例1:将(307)10转换为二进制数。153低位高位(2)十进制数转换成二进制数例2:将(0.8125)10转换为二进制数。0.8125故:(0.8125)10=(0.1101)21.2500×20.5000×21.00001.625×2(b)纯小数部分的转换:“乘2顺取整”×2低位高位(2)十进制数转换成二进制数解:因为:(307)10=(100110011)2例3:将(307.8125)10转换为二进制数。(0.8125)10=(0.1101)2故:(307.8125)10=(100110011.1101)2注意:十进制数转换成二进制数时,常将整数和纯小数部分分开转换为相应的二进制,然后再将二进制数的整数和小数部分连接起来。(2)十进制数转换成二进制数注意:并非所有的十进制小数都能用有限位的二进制小数来表示。故取近似值:(0.63)10=(0.1010)2小数部分乘2会无限循环下去例:将(0.63)10转换为二进制。(2)十进制数转换成二进制数4.编码计算机处理的信息除了数字之外还需要处理字母、符号等,例如键盘输入及打印机、CRT输出的信息大部分是字符。因此,计算机中的字符也必须采用二进制编码的形式。ASCII码(美国标准信息交换代码)西文信息是由字母、数字、标点符号及一些特殊符号组成的,它们统称为字符。对每个字符集的编码方法多种多样,目前使用最广泛的字符集编码是:西文信息在计算机内的表示其中:可打印字符95个,在键盘上有相应键位如字母、数字等;控制字符33个,在传输、打印或显示输出时起控制作用。00H-1FH、DELASCII码是7位编码,从0000000到1111111,共128种编码,可用来表示128个不同的字符编码,即可用来表示128个不同的字符。用一个字节存放一个ASCII码,高位为0。西文信息在计算机内的表示汉字是记录汉语(国语,华语)的文字,属于表意文字,它用符号直接表达词或词素。汉字的特点:数量大(我国汉字自古至今累计已超过7万字,国家语委颁布的“现代汉语通用字表”包含7000汉字)多个国家和地区使用:港台地区,日、韩、朝、新、马等字形复杂,同音字多,异体字多。中文信息在计算机内的表示我国汉字编码的国家标准:–GB2312-80(6763个常用简体汉字)–GBK-95–GB18030-2000中文信息在计算机内的表示《信息交换用汉字编码字符集》(GB2312-80)。GB2312国标字符集有6763个常用汉字1.由三部分组成:字母、数字和各种符号(拉丁字母、俄文、日文平假名、日文片假名、希腊字母、汉语拼音等,统称GB2312图形符号);一级常用汉字,共3755个,按汉语拼音排列;二级常用汉字,共3008个,按偏旁部首排列。中文信息在计算机内的表示2.GB2312-80字符集是一个二维代码表,94行、94列,汉字在代码表中的位置用它所处的行号、列号表示:字母、数字和各种符号字母、数字和各种符号字母、数字和各种符号字母、数字和各种符号字母、数字和各种符号一级汉字一级汉字一级汉字一级汉字(3755个)个)(3755个)二级汉字二级汉字(3008个)个)(扩充使用)①②③①②③¨¨¨¨¨¨¨¨¨①②③①②位号位码位号位码位号区号区码区号区码①①①①①⑨⑨⑨⑨16161655555656948794949494GB2312字符集及区位码1995年颁布,全称《汉字内码扩展规范》总计23940个码位,共收入21003个汉字和883图形符号与GB2312字符集及其内码保持向下兼容,见下图双字节编码,首字节的最高位必为“1”(81-FEH),第2字节的最高位不一定是“1”(40-FEH);简体和繁体汉字在同一个字符集中;包含了中、日、韩认同的全部CJK汉字;GBK汉字内码扩充规范(GBK-95)采用单字节、双字节和四字节三种方式对字符编码。单字节部分使用0x00至0x80码位。双字节部分采用两个八位二进制位串表示一个字符,其首字节码位从0x81至0xFE,尾字节码位分别是0x40至0x7E和0x80至0xFE。四字节部分采用GB11383未采用的0x30到0x39作为对双字节编码扩充的后缀,这样扩充的四字节编码,其范围为0x81308130到0xFE39FE39。GB18030-2000编码输入方法不同,内码相同1.编码方式有四种:流水码(电报码、国际码、区位码)音码(全拼、双拼)形码(五笔字型码、大众码)音形码(自然码、智能ABC)不同的编码方式有不同的输入码2.非编码方式,日益增多汉字输入