第1章微型计算机系统概述.ppt
微微 机机 原原 理理 与与 接接 口口 技技 术术第1章 微型计算机系统概述1.1 微型计算机发展与应用1.2 计算机中的数据表示1.3微型计算机系统组成1.4 微型计算机工作过程1.5 微型计算机主要性能指标本章小结1微微 机机 原原 理理 与与 接接 口口 技技 术术第1章 微型计算机系统概述【任务驱动任务驱动】本章主要介绍微型计算机系统的发展、应用、组成以及它的本章主要介绍微型计算机系统的发展、应用、组成以及它的工作过程。通过本章学习,学生应了解计算机的发展过程和微型工作过程。通过本章学习,学生应了解计算机的发展过程和微型计算机的主要性能指标,理解微型计算机的工作过程,掌握计算计算机的主要性能指标,理解微型计算机的工作过程,掌握计算机中数据的表示方法以及微型计算机系统的构成;通过以上知识机中数据的表示方法以及微型计算机系统的构成;通过以上知识的学习,使学生对计算机系统有个基本的认识,为以后各章学习的学习,使学生对计算机系统有个基本的认识,为以后各章学习打下基础。打下基础。【重点难点重点难点】1微型计算机的特点与应用微型计算机的特点与应用2计算机中数据的表示方法计算机中数据的表示方法3微型计算机系统的构成微型计算机系统的构成2微微 机机 原原 理理 与与 接接 口口 技技 术术1.1 微型计算机发展与应用微型计算机发展与应用 计算机是一种能自动、高速、精确地处理信息计算机是一种能自动、高速、精确地处理信息的现代化电子设备,具有算术运算和逻辑判断能力,的现代化电子设备,具有算术运算和逻辑判断能力,并能通过预先编好的程序来自动完成数据的加工处并能通过预先编好的程序来自动完成数据的加工处理,因此,也可以说计算机是一种帮助人类从事脑理,因此,也可以说计算机是一种帮助人类从事脑力劳动的工具。力劳动的工具。3微微 机机 原原 理理 与与 接接 口口 技技 术术1.1.1 微型计算机的发展微型计算机的发展 19461946年年2 2月,在美国宾夕法尼亚大学诞生了世界上第一月,在美国宾夕法尼亚大学诞生了世界上第一台电子计算机台电子计算机ENIAC(Electronic Numerical Integrator ENIAC(Electronic Numerical Integrator and Computer)and Computer)。这台计算机由电子管组成,每秒可进行。这台计算机由电子管组成,每秒可进行50005000次加法运算,而且采用了著名的数学家冯次加法运算,而且采用了著名的数学家冯诺依曼的设诺依曼的设计思想,即计思想,即(1 1)采用二进制计算;)采用二进制计算;(2 2)存储程序并在程序控制下自动执行;)存储程序并在程序控制下自动执行;(3 3)其硬件由运算器、控制器、存储器、输入设备和输出)其硬件由运算器、控制器、存储器、输入设备和输出设备五大部分组成。设备五大部分组成。这种模式的计算机被称为这种模式的计算机被称为“冯冯诺依曼机诺依曼机”。计算机发。计算机发展至今,一直沿用这种设计思想。这是计算机科学发展史上展至今,一直沿用这种设计思想。这是计算机科学发展史上的一个重要里程碑,它奠定了计算机发展的科学基础。的一个重要里程碑,它奠定了计算机发展的科学基础。4微微 机机 原原 理理 与与 接接 口口 技技 术术 随着电子科学技术的发展,计算机的发展先后经历了电子管、晶体管、大规模集成电路和超大规模集成电路为主要器件的四个时代。预计在不久的将来,将诞生以超导器件、电子仿真、集成光路等技术支撑的第五代计算机。计算机总的趋势是朝着巨型化、微型巨型化、微型化、网络化、智能化化、网络化、智能化方向发展。5微微 机机 原原 理理 与与 接接 口口 技技 术术 微型计算机是指以大规模、超大规模集成电路微型计算机是指以大规模、超大规模集成电路为主要部件,为主要部件,以集成了计算机主要部件控制器和运算器的微处理器MP(Micro Processor)为核心,再配上存储器、接口电路等所构造出的计算机系统。微型计算机的发展经历了五代。我们一般以字长微型计算机的发展经历了五代。我们一般以字长(计算机能同时处理的二进制数的位数)和典型的(计算机能同时处理的二进制数的位数)和典型的微处理器芯片作为各阶段的标志。微处理器芯片作为各阶段的标志。6微微 机机 原原 理理 与与 接接 口口 技技 术术 第一代(第一代(19711971年年19731973年)是年)是4 4位和低档位和低档8 8位微位微机。代表产品是美国机。代表产品是美国IntelIntel公司的公司的40044004微处理器及由微处理器及由它组成的它组成的MCSMCS微型计算机。微型计算机。第二代第二代 (19741974年年19771977年)是中高档年)是中高档8 8位微机,位微机,以以Intel8080/8085Intel8080/8085、MotorolaMotorola公司的公司的Mc6800Mc6800及美国及美国ZilogZilog公司的公司的Z80Z80等为等为CPUCPU的微型机为典型代表。的微型机为典型代表。第三代(第三代(19781978年年19811981年)是年)是1616位微机,如以位微机,如以80868086,Z8000Z8000和和MC68000MC68000为为CPUCPU的微型机。的微型机。第四代(第四代(19821982年年19921992年)是年)是3232位微机,典型位微机,典型的的CPUCPU产品有产品有8038680386和和MC68020MC68020。之后。之后IntelIntel公司又推公司又推出出8048680486微处理器。微处理器。7微微 机机 原原 理理 与与 接接 口口 技技 术术 第五代(第五代(19931993年年19991999年)是准年)是准6464位微机。位微机。19931993年年3 3月月IntelIntel公司推出了全新的超级公司推出了全新的超级3232位微处理器芯片位微处理器芯片PentiumPentium,虽然其仍属于,虽然其仍属于3232位机,但其内部数据通道已是位机,但其内部数据通道已是6464位,提高了数据传送速度。位,提高了数据传送速度。第六代(第六代(20002000年以后)这是新一代年以后)这是新一代6464位微处理器位微处理器pentiumpentium D D。该芯片采用了新的体系结构,其性能大大高。该芯片采用了新的体系结构,其性能大大高于于IntelIntel系列的其他微处理器,给微处理器体系结构和系列的其他微处理器,给微处理器体系结构和PCPC机的性能引入了全新的概念。机的性能引入了全新的概念。近几年来,计算机产业中又开发生产出双核近几年来,计算机产业中又开发生产出双核CPUCPU、四、四核核CPUCPU等芯片,这将把微型计算机的应用推向一个新的时等芯片,这将把微型计算机的应用推向一个新的时代。代。8微微 机机 原原 理理 与与 接接 口口 技技 术术1.1.2 1.1.2 微型计算机的应用微型计算机的应用 由于微型计算机具有体积小、价格低、耗电少等优由于微型计算机具有体积小、价格低、耗电少等优点,所以它的应用范围十分广阔。归纳起来,目前主要点,所以它的应用范围十分广阔。归纳起来,目前主要有如下几个应用领域。有如下几个应用领域。1 1科学计算科学计算2 2信息处理信息处理3 3计算机辅助技术计算机辅助技术4 4过程控制过程控制5 5计算机通信计算机通信6 6人工智能人工智能9微微 机机 原原 理理 与与 接接 口口 技技 术术 1.1.3 1.1.3 微型计算机的分类微型计算机的分类(一)按照微处理器能够处理的数据字长可以分为:(一)按照微处理器能够处理的数据字长可以分为:4 4位机、位机、8 8位机、位机、1616位机、位机、3232位机、位机、6464位机。位机。(二)按照微型计算机的使用形态分类可以分为:(二)按照微型计算机的使用形态分类可以分为:单片机、单板机、位片式机和微型计算机系统。单片机、单板机、位片式机和微型计算机系统。10微微 机机 原原 理理 与与 接接 口口 技技 术术1.2 计算机中的数据表示 在日常生活中,人们习惯使用在日常生活中,人们习惯使用十进制数来进行数来进行计数和计算。但计算机系统内部使用的所有指令或计数和计算。但计算机系统内部使用的所有指令或数据都采用数据都采用二进制代码代码.因此,所有需要计算机处理因此,所有需要计算机处理的数字、字母、符号等都必须采用二进制表示。但的数字、字母、符号等都必须采用二进制表示。但二进制数难记忆,阅读和书写也不方便,在计算机二进制数难记忆,阅读和书写也不方便,在计算机中有时也采用其他进制,如中有时也采用其他进制,如十六进制、八进制和十和十进制等。本节将介绍二进制与其他进制间的转换及进制等。本节将介绍二进制与其他进制间的转换及计算机中的编码方式。计算机中的编码方式。11微微 机机 原原 理理 与与 接接 口口 技技 术术1.2.1 1.2.1 数制的概念以及常用进位计数数制的概念以及常用进位计数 为了区别不同的进位计数制,可以用字母后缀表示数为了区别不同的进位计数制,可以用字母后缀表示数制制:B:B:二进制、二进制、O:O:表示八进制、表示八进制、D:D:表示十进制、表示十进制、H:H:十六进制。十六进制。1十进制1010个数码个数码(0(0、1 1、2 2、3 3、4 4、5 5、6 6、7 7、8 8、9)9)组成,基数为组成,基数为1010,计数特点为逢十进一。计数特点为逢十进一。用十进制表示数值的方法为:用十进制表示数值的方法为:其中其中KiKi=0=0、1 1、2 2、3 3、4 4、5 5、6 6、7 7、8 8、9 9例如:例如:(1987.6)D(1987.6)D1 110103 39 910102 28 810101 17 710100 06 610101 112微微 机机 原原 理理 与与 接接 口口 技技 术术2二进制由(由(0 0、1 1)两个数码组成。)两个数码组成。基数为基数为2,2,计数特点为逢二进一。计数特点为逢二进一。用二进制表示数值的方法为:用二进制表示数值的方法为:其中其中KiKi=0=0、1 1例如:例如:(-1010.011)B=-(-1010.011)B=-(1 12 23 3+0+02 22 2+1+12 21 1+0+02 20 0+0+02 2-1-1+1+12 2-2-2+1+12 2-3-3)13微微 机机 原原 理理 与与 接接 口口 技技 术术3八进制 由由8 8个数码个数码(0(0、1 1、2 2、3 3、4 4、5 5、6 6、7)7)组成。组成。八进制数的基数为八进制数的基数为8 8,计数特点为逢八进一。计数特点为逢八进一。用八进制表示数值的方法为:用八进制表示数值的方法为:其中其中KiKi=0=0、1 1、2 2、3 3、4 4、5 5、6 6、7 7例如:(例如:(423.5423.5)o=4o=48 82 2+2+28 81 1+3+38 80 0+5+58 8-1-1 14微微 机机 原原 理理 与与 接接 口口 技技 术术4 4十六进制十六进制 由由1616个数码个数码(0(0、1 1、2 2、3 3、4 4、5 5、6 6、7 7、8 8、9 9、A A、B B、C C、D D、E E、F)F)组成。组成。基数为基数为1616,计数特点为逢十六进一。计数特点为逢十六进一。用十六进制表示数值的方法为:用十六进制表示数值的方法为:其中其中kiki=0=0、1 1、2 2、3 3、4 4、5 5、6 6、7 7、8 8、9 9、A A、B B、C C、D D、E E、F F例如:例如:(56D.34)H=556D.34)H=516162 2+6+616161 1+13+1316160 0+3+31616-1-1+4+41616-2-215微微 机机 原原 理理 与与 接接 口口 技技 术术 表表1.1 1.1 常用进位计数制对应关系表常用进位计数制对应关系表16微微 机机 原原 理理 与与 接接 口口 技技 术术1.2.2 1.2.2 进位计数制间的转换进位计数制间的转换1 1二、八、十六进制数转换成十进制数二、八、十六进制数转换成十进制数 这种转换非常简单,将二、八、十六进制数按这种转换非常简单,将二、八、十六进制数按“权权”展开相加展开相加即可。即可。例例1.11.1将下列二进制数将下列二进制数1011.111011.11和十六进制数和十六进制数B6.8B6.8转换成十进制转换成十进制数数(1011.111011.11)2 2=1=12 23 3+0+02 22 2+1+12 21 1+1+12 20 0+1+12-2-1 1+1+12 2-2 2=8+0+2+1+0.5+0.25=8+0+2+1+0.5+0.25=(11.7511.75)1010(B6.8B6.8)1616=11=1116161 16 616160 08 816161 11761766 60.50.5(182.5182.5)101017微微 机机 原原 理理 与与 接接 口口 技技 术术2 2十进制数转换为二、八、十六进制数十进制数转换为二、八、十六进制数 十进制数到二、八、十六进制数的转换比较复杂,要把整数部分和小数部分分别进行转换,然后再把转换结果进行相加。整数部分转换采用除基数取余数法:整数部分转换采用除基数取余数法:用基数(2、8或16)不断地去除要转换的数,直到商为0。再将每一步所得的余数,按逆序排列,便为转换结果。例1.2 将(152)10转换为二进制数,转换过程如下:转换结果为:(152)D=(10011000)B18微微 机机 原原 理理 与与 接接 口口 技技 术术19微微 机机 原原 理理 与与 接接 口口 技技 术术 小数部分转换采用乘基数取整数法:小数部分转换采用乘基数取整数法:每次用基数与小数部分相乘,取乘积的整数部分,再取其小数部分乘基数直到小数部分为0。将所取整数顺序排在小数点后即为转换结果。例1.3将(0.375)10转换为二进制数,转换过程如下:转换结果为转换结果为(0.375)D=(0.011)B(0.375)D=(0.011)B 注意:如果在小数转换过程中,乘积结果小数部分永远注意:如果在小数转换过程中,乘积结果小数部分永远不为不为0 0的话,可以根据精度要求来保留相应小数位数。的话,可以根据精度要求来保留相应小数位数。20微微 机机 原原 理理 与与 接接 口口 技技 术术3 3二进制和八、十六进制之间的转换二进制和八、十六进制之间的转换 (1 1)二进制到八进制、十六进制的转换)二进制到八进制、十六进制的转换 二进制到八进制转换采用二进制到八进制转换采用“三位合一位三位合一位”的方法;二进制到十的方法;二进制到十六进制转换采用六进制转换采用“四位合一位四位合一位”的方法。把要转换的二进制数,从的方法。把要转换的二进制数,从小数点开始向两边分别进行分组。转换为八进制时,向左每三位为小数点开始向两边分别进行分组。转换为八进制时,向左每三位为一组,向右每三位为一组,向左不是三位的,从左边补一组,向右每三位为一组,向左不是三位的,从左边补0 0;向右不;向右不足三位的,从右边补足三位的,从右边补0 0。转换为十六进制时,向左每四位为一组,。转换为十六进制时,向左每四位为一组,向右每四位为一组,向左不足四位的,从左边补向右每四位为一组,向左不足四位的,从左边补0 0,向右不足四位,向右不足四位的,从右边补的,从右边补0 0。21微微 机机 原原 理理 与与 接接 口口 技技 术术 例例1.4 1.4 将(将(1000110.011000110.01)2 2分别转换为八进制数和十六分别转换为八进制数和十六进制数。进制数。“二二”到到“八八”的转换采用的转换采用“三位合一位三位合一位”的方法:的方法:001 0 0 0 1 1 0.0 1 0001 0 0 0 1 1 0.0 1 0 1 0 6.2 1 0 6.2“二二”到到“十六十六”的转换采用的转换采用“四位合一位四位合一位”的方法:的方法:0 1 0 0 0 1 1 0 .0 1 0 00 1 0 0 0 1 1 0 .0 1 0 0 4 6 .4 4 6 .4(1000110.011000110.01)B=B=(106.2106.2)O=O=(46.446.4)H H22微微 机机 原原 理理 与与 接接 口口 技技 术术(2 2)八进制、十六进制到二进制的转换)八进制、十六进制到二进制的转换八进制、十六进制到二进制的转换的方法采用把一位八(十八进制、十六进制到二进制的转换的方法采用把一位八(十六)进制数拆成三位(四位)二进制数表示的方法,按顺序写出六)进制数拆成三位(四位)二进制数表示的方法,按顺序写出每位八进制(十六进制)数字所对应的三位(四位)二进制数,每位八进制(十六进制)数字所对应的三位(四位)二进制数,所得结果即为对应的二进制数。所得结果即为对应的二进制数。例例1.51.5将将(352.6)8(352.6)8转换为二进制数。转换为二进制数。写出各位数字对应的三位二进制数:写出各位数字对应的三位二进制数:例例1.61.6将将(B6.8)16(B6.8)16转换为二进制数。转换为二进制数。写出各位数字对应的四位二进制数:写出各位数字对应的四位二进制数:23微微 机机 原原 理理 与与 接接 口口 技技 术术1.2.3 1.2.3 带符号数的表示带符号数的表示计算机在处理实际问题时遇到的数据,通常是带符号数。数据计算机在处理实际问题时遇到的数据,通常是带符号数。数据的符号的符号(正或负正或负)也要用二进制数码表示。一般用也要用二进制数码表示。一般用“0 0”表示正数符表示正数符号,用号,用“1 1”表示负数符号。这样,机器中数的符号也数值化了。表示负数符号。这样,机器中数的符号也数值化了。我们把这种数值数据在计算机中的编码表示称为机器数,而把机器我们把这种数值数据在计算机中的编码表示称为机器数,而把机器数所代表的实际数值称为机器数的真值。数所代表的实际数值称为机器数的真值。假定机器数的位数为假定机器数的位数为n+1n+1位,其中一位就是符号位,其他位,其中一位就是符号位,其他n n位为位为数值位。数值位。如:如:X=+1100110BX=+1100110B,其机器数表示为:,其机器数表示为:01100110B01100110B Y=-1100110B Y=-1100110B,其机器数表示为:,其机器数表示为:11100110B11100110B24微微 机机 原原 理理 与与 接接 口口 技技 术术1 1原码表示法原码表示法原码表示法是一种简单的机器数表示法,即符号和数值表示原码表示法是一种简单的机器数表示法,即符号和数值表示法,用最高位表示符号,其中法,用最高位表示符号,其中0 0表示正号,表示正号,1 1表示负号,其他表示负号,其他n n位表位表示数值的绝对值。设示数值的绝对值。设X X为真值,为真值,XX原为机器数表示。在原码表示原为机器数表示。在原码表示法中用法中用8 8位二进制位表示的整数数据范围为位二进制位表示的整数数据范围为127+127127+127。对于正整数:设对于正整数:设 X=1100110BX=1100110B,则,则 XX原原=01100110B=01100110B。对于负整数:设对于负整数:设X=1100111BX=1100111B,则,则XX原原=11100111B=11100111B。对于正小数:设对于正小数:设X=0.1011BX=0.1011B,则,则 XX原原=01011000B=01011000B对于负小数:设对于负小数:设X=X=0.1011B,0.1011B,则则XX原原=11011000B=11011000B对于零:在原码表示法中,对于零:在原码表示法中,0 0有两种表示形式:有两种表示形式:+0+0原原=00000000B 0=00000000B 0原原=10000000B=10000000B【问题问题】这种这种0 0和和0 0原码表示上的不一致,会直接影响诸如原码表示上的不一致,会直接影响诸如X X0 0和和X X0 0(即(即X X(-0)(-0))结果上的不同。)结果上的不同。25微微 机机 原原 理理 与与 接接 口口 技技 术术2 2反码表示法反码表示法用机器数的最高一位表示符号,用机器数的最高一位表示符号,0 0表示正号,表示正号,1 1表示负号。数值表示负号。数值部分,对于正数,反码表示形式与原码表示形式相同,即部分,对于正数,反码表示形式与原码表示形式相同,即XX反反=X=X原。对于负数,对符号位以外各位按位原。对于负数,对符号位以外各位按位“取反取反”(0(0变变1 1,1 1变变0)0)即可。在反码表示法中用即可。在反码表示法中用8 8位二进制位表示的整数数据范围为位二进制位表示的整数数据范围为-127+127127+127。如:如:X=+1010101BX=+1010101B,则则 XX反反=X=X原原=01010101B=01010101BX=X=-1100111B1100111B,则则 XX反反=10011000B=10011000B对于零:在反码表示法中,对于零:在反码表示法中,0 0有两种表示形式:有两种表示形式:+0+0反反=00000000B =00000000B 00反反=11111111B=11111111B可见,上述可见,上述【问题问题】仍然存在。仍然存在。26微微 机机 原原 理理 与与 接接 口口 技技 术术3 3补码表示法补码表示法正数的补码和原码相同;负数的补码,可由其原码,采用正数的补码和原码相同;负数的补码,可由其原码,采用“符号位不变,其他各位取反,末位加符号位不变,其他各位取反,末位加1 1”的原则求得。补码表示中的原则求得。补码表示中零的表示是唯一的。零的表示是唯一的。如:如:X=+1010101B XX=+1010101B X补补=X=X原原=01010101B=01010101B X=X=1100111B1100111B,则,则XX补补=X=X反反+1=10011000B+1=10011001B+1=10011000B+1=10011001B+0+0补补=-0=-0补补=00000000B=00000000B补码表示法可以让符号位作为数值的一部分直接参加运算,从补码表示法可以让符号位作为数值的一部分直接参加运算,从而化减法为加法运算,以简化加法器的逻辑设计。因此补码的应而化减法为加法运算,以简化加法器的逻辑设计。因此补码的应用最为普遍,大部分计算机中都采用补码表示法表示数值数据。用最为普遍,大部分计算机中都采用补码表示法表示数值数据。27微微 机机 原原 理理 与与 接接 口口 技技 术术从上面关于原码、反码、补码的定义可知:从上面关于原码、反码、补码的定义可知:一个正数的原码、反码、补码的表示形式相同,符号位一个正数的原码、反码、补码的表示形式相同,符号位为为0 0,数值位是真值本身;,数值位是真值本身;一个负数的原码、反码、补码的符号位都为一个负数的原码、反码、补码的符号位都为1 1,数值位,数值位原码是真值本身;反码是各位取反;补码是各位取反,最低原码是真值本身;反码是各位取反;补码是各位取反,最低位加位加1 1。即原码的反码加。即原码的反码加1 1是补码;补码的反码加是补码;补码的反码加1 1是原码。是原码。多数计算机都采用补码形式表示带符号数,这是因为利多数计算机都采用补码形式表示带符号数,这是因为利用补码可以很容易地把减法转换成加法。在用补码可以很容易地把减法转换成加法。在8088/8086 CPU8088/8086 CPU中,也是采用补码方式表示带符号数的。中,也是采用补码方式表示带符号数的。28微微 机机 原原 理理 与与 接接 口口 技技 术术4补码加减运算及溢出判断(1 1)补码的加法运算)补码的加法运算+补补+补 例例1.7 X1.7 X110001B110001B,Y Y+001001B+001001B,利用补码加法计算,利用补码加法计算X+Y=?X+Y=?解:解:XX补补:1001111:1001111+Y+Y补补:0001001 :0001001 XX补补+Y+Y补补:1011000:1011000 则则X+YX+Y-101000B-101000B29微微 机机 原原 理理 与与 接接 口口 技技 术术 例例1.81.8求求(9)+(9)+(2)2)?解:解:99的补码:的补码:1 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 2 2的补码:的补码:1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 因为因为 +补补 补补+补补 补:补:1 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 9 9+补:补:1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 +2 2 XX补补+补:补:1 1 1 1 0 1 0 1 1 1 1 1 0 1 0 1 1 11 1所以所以 X+YX+Y补补11110101 11110101 X+YX+Y0001011B0001011B11 11 30微微 机机 原原 理理 与与 接接 口口 技技 术术(2 2)补码的减法运算)补码的减法运算XXYY补补X+(X+(Y)Y)补补 XX补补+YY补补 例例1.9 X1.9 X001110B001110B,Y Y110001B110001B,利用补码减法计算,利用补码减法计算XYXY?解:解:XX补补00011100001110,YY补补10011111001111,YY补补01100010110001因为因为XXYY补补X+(X+(Y)Y)补补 XX补补+YY补补XX补补:0001110:0001110+YY补补:0110001 :0110001 X XYY补补:0111111 :0111111 所以所以 X XY Y+111111B+111111B+63+6331微微 机机 原原 理理 与与 接接 口口 技技 术术 例例1.10 1.10 求求9 92=2=?解:解:补补00001001 00001001 补补00000010 00000010 因为因为 XXYY补补X+(X+(Y)Y)补补 XX补补+YY补补 补补:0 0 0 0 1 0 0 1:0 0 0 0 1 0 0 1+补补:1 1 1 1 1 1 1 0 :1 1 1 1 1 1 1 0 补补+补补:0 0 0 0 0 1 1 1:0 0 0 0 0 1 1 1所以:所以:XXYY补补00001110000111 X XY Y+0000111B+0000111B7 7 【观察观察】若已知若已知Y Y补,补,-Y-Y补?补?32微微 机机 原原 理理 与与 接接 口口 技技 术术(3 3)溢出判断)溢出判断在选定了运算字长和数的表示方法之后,如果运算的结果,超在选定了运算字长和数的表示方法之后,如果运算的结果,超出了计算机能表示的数据范围,这种情况称为广义上的溢出。出了计算机能表示的数据范围,这种情况称为广义上的溢出。比如两个有符号数:比如两个有符号数:X X补:补:0100010001000100 Y Y补:补:01100001 01100001 而而 XX补补+补:补:10100101 10100101 两个正数相加其结果却是负数,这显然是不正确的。其原因就是两个正数相加其结果却是负数,这显然是不正确的。其原因就是在字长(上例是在字长(上例是8 8位,数值部分占位,数值部分占7 7位)一定的情况下,它所能表示位)一定的情况下,它所能表示的数的范围是有限的(的数的范围是有限的(7 7位二进制数最大可以达位二进制数最大可以达127127),一旦超过这),一旦超过这个范围(上例中个范围(上例中X X为为6868,Y Y为为9797),其进位就影响到了符号位,产生),其进位就影响到了符号位,产生错误的结果。错误的结果。溢出判断方法溢出判断方法:当两个正数相加结果为负数,或两个负数相加:当两个正数相加结果为负数,或两个负数相加结果为正数,则有溢出;正数和负数相加不会有溢出。结果为正数,则有溢出;正数和负数相加不会有溢出。33微微 机机 原原 理理 与与 接接 口口 技技 术术1.2.4 1.2.4 定点表示与浮点表示定点表示与浮点表示 以上我们用到的数据都是纯整数或纯小数,实际的数可能既以上我们用到的数据都是纯整数或纯小数,实际的数可能既有整数部分又有小数部分,这就提出一个在计算机中如何表示小有整数部分又有小数部分,这就提出一个在计算机中如何表示小数点位置的问题。计算机中小数点不占位数,而是采用人为约定数点位置的问题。计算机中小数点不占位数,而是采用人为约定的方法。根据小数点位置是否固定,数的格式分为定点表示和浮的方法。根据小数点位置是否固定,数的格式分为定点表示和浮点表示两类。点表示两类。34微微 机机 原原 理理 与与 接接 口口 技技 术术1 1定点表示法定点表示法 定点表示法约定小数点位置固定不变。为了处理方便,一般定点表示法约定小数点位置固定不变。为了处理方便,一般只采用三种简单的约定,相应有三种类型的定点数。只采用三种简单的约定,相应有三种类型的定点数。(1 1)无符号数。无符号整数是将符号位略去的正整数,所有)无符号数。无符号整数是将符号位略去的正整数,所有的数位都用来表示数值的大小,小数点约定在最低位之后。换的数位都用来表示数值的大小,小数点约定在最低位之后。换言之,整个数码序列是整数。言之,整个数码序列是整数。(2 2)带符号定点整数。定点整数约定小数点在数值位的最低)带符号定点整数。定点整数约定小数点在数值位的最低位之后,此时计算机中所表示的数一律为整数。如图位之后,此时计算机中所表示的数一律为整数。如图1.11.1所示。所示。35微微 机机 原原 理理 与与 接接 口口 技技 术术n n位带符号二进制整数(数值位为位带符号二进制整数(数值位为n n1 1位)可表示的数值范围为:位)可表示的数值范围为:原码、反码是:原码、反码是:(2(2n-1n-1-1)-1)2 2n-1n-1-1-1;补码是补码是:2 2n-1n-12 2n-1n-1-1-1【思考思考】写出写出8 8位带符号二进制整数的数值范围?位带符号二进制整数的数值范围?符符号号位位数数值值位位小数点小数点36微微 机机 原原 理理 与与 接接 口口 技技 术术 (3)(3)带符号定点小数。带符号定点小数。定点小数约定小数点在符号位和数值位之间,即所有的数值部定点小数约定小数点在符号位和数值位之间,即所有的数值部分均在小数点之后,整数部分为分均在小数点之后,整数部分为0 0,所以称为纯小数。如图,所以称为纯小数。如图1.21.2所示。所示。原码、反码定点小数表示范围是:原码、反码定点小数表示范围是:(1 12-(n-1)2-(n-1))1 12-(n-1)2-(n-1)补码定点小数表示范围是:补码定点小数表示范围是:1 11 12-(n-1)2-(n-1);n n为二进制定点小数为二进制定点小数位数,位数,n-1n-1为数值位位数。为数值位位数。【思考思考】写出写出8 8位带符号二进制小数的数值范围?位带符号二进制小数的数值范围?符符号号位位数数值值位位小数点小数点37微微 机机 原原 理理 与与 接接 口口 技技 术术2 2浮点表示法浮点表示法 浮点数是指小数点在数据中的位置可以左右移动的数据。通常浮点数是指小数点在数据中的位置可以左右移动的数据。通常可表示成:可表示成:N=N=S SR RE E其中其中S S称为尾数;称为尾数;R R称为基数;称为基数;E E称为阶码。称为阶码。在计算机内部,典型的浮点数的格式为图在计算机内部,典型的浮点数的格式为图1.31.3所示:所示:阶码部分 尾数部分阶符阶码数符尾数38微微 机机 原原 理理 与与 接接 口口 技技 术术浮点数实际由两个定点数组成:浮点数实际由两个定点数组成:阶码是一个定点整数,它的位数决定了浮点数的表示范围;尾数是一个定点小数,为了表示的唯一性,通常采用规格化形式,既尾数部分的绝对值保持在0.5S1的范围内,尾数的长度决定了浮点数的精度,即有效数据的位数。为了既保证足够大的数值范围,又要保证所要求的精度,合理地选择阶码部分和尾数部分的位数是十分必要的。例例1.111.11将(将(123.375123.375)1010表示成浮点规格化形式(共表示成浮点规格化形式(共1616位,位,阶码部分阶码部分4 4位,尾数部分位,尾数部分1212位,阶码和尾数均用补码形式)。位,阶码和尾数均用补码形式)。因:(因:(123.375123.375)1010(1111011.0111111011.011)2 20.11110110110.11110110112 2111111那么在机器中的浮点表示形式为:那么在机器中的浮点表示形式为:0 111 1 000010010100 111 1 00001001010阶符阶符 阶码阶码 尾符尾符 尾数尾数39微微 机机 原原 理理 与与 接接 口口 技技 术术1.2.5 1.2.5 计算机中非数值型数据的编码计算机中非数值型数据的编码计算机中除了处理数值信息外,还要处理大量的字符数据,计算机中除了处理数值信息外,还要处理大量的字符数据,如字母、符号、汉字、图像、语音等。这些信息最终都必须转换如字母、符号、汉字、图像、语音等。这些信息最终都必须转换为二进制格式的代码才能被计算机处理,即字符和十进制数都要为二进制格式的代码才能被计算机处理,即字符和十进制数都要表示为若干位二进制码的组合,即信息和数据的二进制编码。计表示为若干位二进制码的组合,即信息和数据的二进制编码。计算机中常用的字符编码有算机中常用的字符编码有BCDBCD码、码、ASCIIASCII码、汉字编码等,这些编码、汉字编码等,这些编码在机器内部都是用二进制表示的。码在机器内部都是用二进制表示的。40微微 机机 原原 理理 与与 接接 口口 技技 术术1.1.二十进制编码二十进制编码BCDBCD码码BCD(BinaryBCD(Binary Coded Decimal)Coded Decimal)是用是用4 4位二进制数表示位二进制数表示1 1位十进制位十进制数的一种编码方式。每个数位分配有固定的权值,将各位的权值相数的一种编码方式。每个数位分配有固定的权值,将各位的权值相加可得对应的十进制数。不同的编码方法分配的权值不同,例如加可得对应的十进制数。不同的编码方法分配的权值不同,例如BCDBCD码可以分为码可以分为8421BCD8421BCD码、码、5421BCD5421BCD码、码、2421BCD2421BCD码等。码等。84218421码的权码的权值从低位到高位分别为值从低位到高位分别为1 1、2 2、4 4、8 8。其他的编码方式的权值类推即。其他的编码方式的权值类推即可。可。例如:(例如:(01110111)8421BCD8421BCD=1*1+1*2+1*4+0*8=7=1*1+1*2+1*4+0*8=78421BCD8421BCD编码方式如表编码方式如表1.21.2所示所示41微微 机机 原原 理理 与与 接接 口口 技技 术术2.2.美国信息交换标准代码美国信息交换标准代码ASCIIASCII码码 ASCIIASCII是基于拉丁字母的一套电脑编码系统。在计算机中,所有是基于拉丁字母的一套电脑编码系统。在计算机中,所有的数据在存储和运算时都要使用的数据在存储和运算时都要使用二进制数二进制数表示,例如,象表示,例如,象a a、b b、c c、d d这样的这样的5252个字母(包括大写)、以及个字母(包括大写)、以及0 0、1 1、2 2等数字还有一些常用等数字还有一些常用的符号(例如的符号(例如*、#、等)在计算机中存储时也要使用二进制数来等)在计算机中存储时也要使用二进制数来表示,而具体用哪些二进制数字表示哪个符号,当然每个人都可以表示,而