数制和编码计算机如何表示数据?各种数据之间的转换方法数字逻辑电路本课要点数符与数位1数制之间的转换2文字的编码3数符就是用于表示数量关系的符号;与所采用的进制有关;阿拉伯数字——国际通用的数字(由印度人发明,由阿拉伯人传向欧洲,由欧洲人将其现代化),就是0,1,2,3,4,5,6,7,8,9共10个计数符号。采取位值法,高位在左,低位在右,从左往右书写。借助一些简单的数学符号(小数点、负号等),这个系统可以明确的表示所有的有理数。为了表示极大或极小的数字,人们在阿拉伯数字的基础上创造了科学记数法。m×xn系数幂有限的数符为何可以表示无限数量——数位数位是指写数时,把数符并列排成横列,一个数字占有一个位置,各位数符所表示值的大小不仅与该数符本身的大小有关,还与该数符所在的位置有关,这些位置,叫做数位。也称为数的位权(所谓的权)。从小数点右端算起,第一位是“个位”,第二位是“十位”,第三位是“百位”,第四位是“千位”,第五位是“万位”……等等。同一个数符在不同的数位上表示的意义是不同的,“5”在百位上,它表示5个百,“5”在十位上,它表示5个十,“5”在个位上,它表示5个一。数位的存在实现了用有限的数符表示无限数量的功能。555=5×102+5×101+5×10059这个5代表500这个5代表50这个5代表5进制进制也就是进位制,是人们规定的一种进/借位方法。对于任何一种进制——X进制,就表示运算时是逢X进一位、借一当X。十进制是逢十进一,十六进制是逢十六进一,二进制就是逢二进一。可使用数字符号的数目称为基数(或底数),基数为n,即可称n进位制,简称n进制。对同一个数,有不同进制表示,数符个数越多,所需位数越少。最常用的是十进制,通常使用10个阿拉伯数字0~9进行记数。计算机用2进制,原因是方便用物理电路实现运算功能。xn指数基数2进制基数为2,只有两个数符(0、1);十进制基数为10,有10个数符(0~9);16进制基数为16,有16个数符(0~F)……其余进制类似推演。常用进制常用进制2进制基本数字0,14进制基本数字0~37进制基本数字0~68进制基本数字0~710进制基本数字0~916进制基本数字0~F(15)60进制用作计时十二进制长度单位一英尺等于12英寸,一先令等于12便士,就连足球比赛罚点球的英制长度也是12码。来源——传说是十个手指头加两只脚。这是过去规定的,现在规定一打12个是一种12进制。现在还能见到十二进制,比如钟表转一圈12小时等等。有时十进制中的10/11在十二进制中也用A/B表示。十进制01234567891011十二进制0123456789MN二进制数特点:由两个基本数字0,1组成,运算规律是逢二进一,借一当二。为区别于其它进制数,二进制数的书写通常在数的右下方注上基数2,或加后面加B表示。例如:二进制数10110011可以写成(10110011)2,或写成10110011B对于十进制数可以不加注基数;十进制(D)012345678910二进制(B)011011100101110111100010011010计算机采用二进制数计算机是信息处理的工具,任何信息必须转换成二进制形式数据后才能由计算机进行处理,存储和传输。二进制特点电路中。有电流用1表示,无电流用0表示。类似的还比如电路中电压的高,低,晶体管的导通和截止等。乘法加法除法减法只有两个数符0和1,容易对应元器件的两个不同稳定状态。运算简单,大大简化了计算中运算部件的结构。十六进制由于二进制数在使用时位数太长,不容易记忆,所以又推出了十六进制数。十六进制数有两个基本特点:它由十六个字符0~9以及A,B,C,D,E,F组成(它们分别表示十进制数10~15);十六进制数运算规律是逢十六进一,即基R=16=24,通常在表示时用尾部标志H或下标16以示区别。例如:十六进制数4AC8可写成(4AC8)16,或写成4AC8H。十进制0123456789101112131415十六进制(H)0123456789ABCDEF十进制与二进制转换十进制数→二进制数将整数部分和小数部分分别进行转换。整数部分---除2取余,逆序排列;小数部分---乘2取整,顺序排列。合并十进制数44.375转换成二进制等于多少?二进制数→十进制数由二进制数转换成十进制数的基本做法是,把二进制数首先写成加权系数展开式,然后按十进制加法规则求和。这种做法称为按权相加法。(101.11)B=1×22+0×21+1×20+1×2-1+1×2-2=(5.75)D各数位的权是2的幂(44.375)D=(?)B整数部分:基数连除,取余数自下而上。244余数低位222………0=K0211………0=K125………1=K222………1=K321………0=K40……… 1=K5高位0.375×2整数高位0.750………0=K-10.750×21.500………1=K-20.500×21.000………1=K-3低位小数部分:基数连乘,取整数自上而下。所以:(44.375)D=(101100.011)B十进制数与其他进制数的相互转换十进制转换为其他进制时,可将十进制数分为整数和小数两部分进行。整数部分采用“除基取余,逆序排列”法。(辗转相除)小数部分采用“乘基取整,顺序排列”法。(相乘取整)二进制数与八进制数的相互转换将二进制数由小数点开始,整数部分向左,小数部分向右,每3位分成一组,不够3位补零,则每组二进制数便是一位八进制数。(1101010.01)2=(152.2)8000二进制数→八进制数八进制数→二进制数八进制数转换为二进制数时,只要将每位八进制数用3位二进制数表示即可。(374.26)8=(011111100.010110)2二进制数与十六进制数的相互转换将二进制数由小数点开始,整数部分向左,小数部分向右,每4位分成一组,不够4位补零,则每组二进制数便是一位十六进制数。二进制数→十六进制数(1011110.1011001)2=(5E.B2)1600十六进制数→二进制数十六进制数转换为二进制数时正好与上面所述相反,只要将每位的十六进制数对应的4位二进制写出来就行了。【例】将十六进制数AB6.2F转换成二进制数。十六进制数A、B、6、2和F对应的二进制数分别为1010、1011、0110、0010和1111,所以转换结果为(AB6.2F)H=(101010110110.00101111)B数字电路中数的表示方法与格式编码用一定位数的二进制数来表示十进制数码、字母、符号等信息称为编码。数字电路中的数代码用以表示十进制数码、字母、符号等信息的一定位数的二进制数称为代码。二——十进制代码数字电路中的任何数据、信号都是用码表示的。码是一种数据表示方法,对不同的码进行编排,它可以表示数据大小,或表示一种状态…,码必须遵从一定的规则,就是编码的规则,这些规则称为码制。给不同事物赋予一定代码的过程称为编码。比如一个字节的二进制数,它有8个码(单)元,每个码元只能用0、1表示,码从低到高每位对应一个权值,其权值按二进制的顺序排列,称其为二进制码。二-十进制代码:用4位二进制数b3b2b1b0来表示十进制数中的0~9十个数码。简称BCD码。8421码:用四位自然二进制码中的前十个码字来表示十进制数码,各位的权依次为8、4、2、1格雷(Gray)码是一种循环码,其特点是任何相邻的两个代码仅有一位不同,其它位都相同。常用BCD码十进制数8421码5421码2421码权8421542124210000000000000100010001000120010001000103001100110011401000100010050101100010116011010011100701111010110181000101111109100111001111注意:这些BCD码的区别其实只是权位的不同,数符都只有0和1。组合脉冲形成数字信号的例子——传送数字“75”将A、B、C、D各线路的脉冲传送时间以一定间隔错开,只用+与-一组线路,利用其流动的电流,就可以传送复杂的数字信号。脉冲的有无有(1)无(0)线路A80线路B40线路C20线路D10第1次传送(0111)BCD,就是数符“7”第2次传送(0101)BCD,就是数符“5”地线脉冲传送方向低电平脉冲高电平脉冲ABCD数码转换BCD码表示十进制数时,将十进制数的每个数码分别用对应的BCD码组代入即可。例如十进制365用BCD码表示时,直接将十进制数3、6、5对应的四位二进制数码0011、0110、0101代入即可得到转换结果:365001101100101码和数是不同的概念,应该加以区分。BCD码是人机对话时使用的一种特殊的码,它看上去像二进制数,但代表的却是十进制数,是一种用二进制形式表示的十进制数。文字符号表示方法数字系统除了能处理数字之外,还能处理文字、符号和其他信息,这些信息也是用二进制数1和0组成的代码来表示的,他们被统称为数据,数字信息称为数值数据,文字、符号等称为非数值数据。表示非数值数据的码通常有一定的处理标准,目前使用最广泛的是西文字符集及其编码ASCII(美国标准信息交换码)。数字电路中的数采用二进制数表示,文字、汉字也用各自的二进制代码来表示。数字电路中码的格式是固定的,例如用ASCII(7位,加上奇偶校验位共8位)表示的英文字母和运算符号。ASCII码表每个字符都由7个二进位b6b5b4b3b2b1b0表示。ASCII码是7位的编码,但由于字节是计算机中的基本处理单位,故一般仍以一字节来存放一个ASCII字符。例如字符“A”的ASCII码=(01000001)2=65H,字符“a”的ASCII码=(01100001)2=97H大小写相差32;而且不符合进制转换规则。汉字的编码ASCII码解决了西文字符的数字化问题。为了使计算机能处理汉字,需要对汉字进行编码。1981年我国颁布了《信息交换用汉字编码字符集(基本集)》GB2312-80,简称国标码(或GB码)。国标码共收集了7445个字符,其中汉字6763个。由于字符太多,无法用一个字节编码,因此用两个字节编码一个国标码字符,每个字节最高位为0。这种方式的缺点在于,字符和字节流之间耦合得太紧密了,从而限定了字符集的扩展能力。国标码GB2312汉字输入码用键盘将汉字输入计算机,需要使用汉字的输入码,我们平常使用的拼音输入码、五笔字型输入码、认知码等都属于汉字输入码。汉字输入码又称为外码,其编码方法主要有三种:数字编码,拼音编码和字型编码。数字编码是用一串数字代表一个汉字。最常用的是区位码。它是把国标码的每一个字节减去00100000得到的,高字节称为区码,低字节称为位码。区位码——GB2312的所有字符分布在一个94行×94列的二维平面内,行号称为区号,列号称为位号。区号和位号的组合就可以作为汉字字符的编码,称为汉字的区位码。汉字机内码由于在计算机系统中直接用ASCII码来表示西文字符,如果直接用国标码表示汉字将引起西文字符和汉字的冲突。因此,在计算机内部使用汉字的机内码来存储、处理和传输汉字信息。所谓汉字的机内码是把国标码两个字节的最高位设置成“1”得到的。内码——区号和位号各用8个二进位表示,它们的最高位均设置为1。这样得到的高位均为1的双字节汉字编码就称为GB2312汉字的“机内码”,又称为内码。PC中GB2312汉字的表示都采用这种方式。扩充编码GBK汉字内码扩充规范GBK是我国1995年发布的又一个汉字编码标准,全称为《汉字内码扩展规范》UCS/Unicode与GB18030编码标准UCS/Unicode规定,全世界现代书面文字所使用的所有字符和符号都集中在一个字符集中统一进行编码。目前的做法是采用双字节编码。编码的过程是将字符转换成字节流。解码的过程是将字节流解析为字符汉字输入的编码方法——输入法汉字输入的编码方法大体可分成以下4类:数字编码字音编码字形编码音形混合