1、21世纪高职高专规划教材,计算机硬件基础,第1章 计算机系统概述,关于计算机,我们并不陌生,它的使用是极其广泛,但真正了解它的使用者是为数不多的。本章便为读者主要介绍计算机系统的一些基本概念,包括计算机的发展、分类和应用,计算机的硬件和软件系统,此外,还将介绍计算机的性能指标。,1.1 计算机的发展、分类和应用,1.计算机的发展 1946年2月,第一台电子计算机ENIAC在美国加州问世 ,揭开了计算机时代的序幕。计算机的发展到目前为止共经历了60余年。对其发展史的划分有多种多样。 (1)从它所采用器件的角度划分,可将其划分为五个时代 第一代:1946-1959,电子管计算机时代。 第二代:19
2、60-1964,晶体管计算机时代。,第三代:1965-1970,中小规模集成电路计算机时代。 第四代:1971-现在, 大规模集成电路计算机时代。 第五代:为新一代计算机,它将向着人工智能等众多领域发展。(2)从计算机语言角度将它划分为以下几代 第一代,机器语言。其特点为:执行速度快,能够被计算机直接识别,但不便于记忆。 第二代,汇编语言。其特点为:不能被计算机直接识别,也不便于记忆。 第三代,高级语言。其特点为:不能被计算机直接识别,但便于记忆。,第四代,模块化语言。如:SQL POWER POINT、EXECELL、DELPH等。 第五代,面向对象的编程语言和网络语言等。2.计算机的分类
3、计算机按照不同的分类依据有多种分类方法,常见的分类方法有以下几种: (1)按处理方式分类 可以把计算机分为模拟计算机、数字计算机以及数字模拟混合计算机。,(2)按计算机的功能分类 可分为专用计算与通用计算机。 (3)按照计算机规模分类 可分为巨型机、大型机、小型机、微型机等几类。 (4)按照其工作模式分类 可将其分为服务器和工作站两类。3.计算机的应用 计算机应用已深入到了人类社会生活的各个领域,其应用可以归纳为以下几个方面:科学计算、数据处理、过程控制、计算机辅助工程、人工智能。,(1)科学计算 科学计算一直是计算机的重要应用领域之一,例如在天文学、核物理学领域中,都需要依靠计算机进行复杂的
4、运算。 (2)数据处理与信息加工 数据处理与信息加工是电子计算机应用最广泛的领域。例如现代企业的生产计划、统计报表、成本核算、销售分析、工资管理等等,都是通过微型计算机来实现的。 (3)实时控制 在现代化工厂中,微型计算机普遍用于生产过程的自动控制,特别是单片微型计算机在工业生产过程中的自动控制更为广泛。,(4)辅助设计与辅助制造 由于微型计算机有快速的数值计算、较强的数据处理及模拟能力,目前在飞机、船舶、光学仪器、超大规模集成电路等的设计制造过程中,CAD/CAM占据着越来越重要的地位。 微型计算机除了进行计算机辅助设计(CAD)、辅助制造(CAM)外,还进行辅助测试(CAT)、辅助工艺(C
5、APP)、辅助教学(CAI)等。 (5) 人工智能 人工智能是将人脑在进行演绎推理的思维过程、规则和所采用的策略、技巧等编成计算机程序,在计算机中存储一些公理和推理规则,然后让机器去自动探索解题的方法。,(6)办公自动化 办公自动化系统的核心就是计算机。计算机支持一切办公业务,如通过网络实现发送电子邮件,办公文档管理,人事信息统计等。 计算机除了具有以上用途以外,它还被用于网络、电子商务、娱乐等其它领域。,1.2 计算机的硬件系统,1 计算机系统概述 计算机系统是由硬件系统和软件系统组成。 硬件系统是指构成计算机的实际的物理设备,主要包括主机和外部设备两部分。 软件系统是指为运行、维护、管理、
6、应用计算机所编制的所有程序和文档的总和,它主要包括计算机本身运行所需的系统软件和用户完成特定任务所需要的应用软件。 二者是计算机系统缺一不可的,二者是相辅相成的。,计算机系统的组成如下图所示:,2 .计算机硬件的基本组成 计算机硬件系统主要由五个部分组成:运算器、控制器、存储器、输入设备和输出设备。 其中,运算器和控制器合称为中央处理器(CPU),这是计算机硬件的核心部件;存储器又分为主存(内存)和辅存(外存),其中主存和CPU又合称为主机;输入设备和输出设备合称为外部设备,简称为外设。计算机采用了“存储程序”工作原理,存储程序的思想,即程序和数据一样,存放在存储器中。这一原理是1946年由美
7、籍匈牙利数学家冯诺伊曼提出来的。,(1)运算器 运算器是对数据进行加工处理的部件,它在控制器的作用下与内存交换数据,负责进行各类基本的算术运算、逻辑运算和其他操作。 运算器由算术逻辑单元(ALU)、累加器、状态寄存器和通用寄存器等组成。 (2)控制器 控制器负责对指令进行分析,并根据指令的要求,有序地、有目的地向各个部件发出控制信号,使计算机的各部件协调一致地工作。 控制器由指令指针寄存器、指令寄存器、控制逻辑电路和时钟控制电路等组成。,(3)存储器 存储器是计算机系统内最主要的记忆装置,既能接收计算机内的信息(数据和程序),又能保存信息,还可以根据命令读取已保存的信息。 存储器按功能可分为主
8、存储器(简称主存)和辅助存储器(简称辅存)。 主存储器,也称为内存储器(简称内存),内存直接与CPU相连接,是计算机中主要的工作存储器,当前运行的程序与数据存放在内存中。 辅助存储器也称为外存储器(简称外存),计算机执行程序和加工处理数据时,外存中的信息按信息块或信息组先送入内存后才能使用,即计算机通过外存与内存不断交换数据的方式使用外存中的信息。,(4)输入设备 输入设备的作用把信息送入计算机。微型计算机上常用的输入设备有键盘、鼠标、扫描仪、条形码读入器、光笔和触摸屏等。 (5)输出设备 将计算机系统中的信息传送到外部世界的设备,如显示器、打印机、绘图仪和触摸屏等。3.计算机的总线结构 微型
9、计算机是由具有不同功能的一组功能部件组成的,系统中各功能部件的类型和它们之间的相互连接大多采用总线连接,这种结构成为总线结构。,1.总线的概念 所谓总线,是连接多个功能部件或多个装置的一组公共信号线。 按在系统中的不同位置,总线可以分为内部总线和外部总线。内部总线是CPU内部各功能部件和寄存器之间的连线;外部总线是连接系统的总线,即连接CPU、存储器和I/O接口的总线,又称为系统总线。2.数据总线的结构 按所传送信息的不同类型,总线可以分为数据总线、地址总线AB和控制总线CB,通常称微型计算机采用三总线结构。 地址总线(Address Bus) 地址总线是微型计算机用来传送地址信息的信号线。,
10、 数据总线(Data Bus) 数据总线是CPU用来传送数据信息的信号线。 控制总线(Control Bus) 控制总线是用来传送控制信号的一组总线。,1.3 计算机的软件系统,1. 软件在计算机系统中的层次及分类 计算机软件系统主要由系统软件和应用软件两大类组成。计算机软件系统的构成如下图所示。,(1)系统软件 系统软件主要分为操作系统软件(软件的核心)、各种语言处理程序和各种数据库管理系统3类。 1)操作系统 系统软件的核心是操作系统。操作系统是由指挥与管理计算机系统运行的程序模板和数据结构组成的一种大型软件系统,其功能是管理计算机的软硬件资源和数据资源,为用户提供高效、全面的服务。 如:
11、DOS,Windows,Linux,Unix和OS/2等。,2)语言处理系统 语言处理系统包括机器语言、汇编语言和高级语言。这些语言处理程序除个别常驻在ROM中可以独立运行外,都必须在操作系统的支持下运行。 3)数据库管理系统 数据库管理系统就是在具体计算机上实现数据库技术的系统软件,由它来实现用户对数据库的建立、管理、维护和使用等功能。 目前在计算机上流行的数据库管理系统软件有Oracle 、SQL Server 、DB2、Access等。,(2)应用软件 为解决计算机各类问题而编写的程序称为应用软件。它又可分为应用软件包与用户程序。 1)用户程序 用户程序是用户为了解决特定的具体问题而开发
12、的软件。例如:火车站或汽车站的票务管理系统、人事管理部门的人事管理系统和财务部门的财务管理系统等。 2)应用软件包 应用软件包是为实现某种特殊功能而经过精心设计的、结构严密的独立系统,是一套满足同类应用的许多用户所需要的软件。,1.4 计算机系统的主要性能指标,评价计算机的性能是一个很复杂的问题,从不同的角度可能对计算机的性能有不同的评价。在实际使用中我们常用的指标包括以下几个:1主频 主频也叫时钟频率,单位是MHz,用来表示CPU的运算速度。2CPU内部缓存(Cache) 采用速度极快的SRAM制作,用于暂时存储CPU运算时的最近的部分指令和数据,存取速度与CPU主频相同,内部缓存的容量一般
13、以KB为单位。,3CPU字长 字长是计算机内部一次可以处理的二进制数码的位数。字长越长,所能表示的数据精度就越高;在完成同样精度的运算时,则数据处理速度越高。但是,字长越长,计算机的硬件代价相应也增大。 4运算速度 计算机的运算速度一般用每秒钟所能执行的指令条数表示。由于不同类型的指令所需时间长度不同。衡量计算机运算速度有一个专门的单位:MIPS,它表示计算机每秒能执行多少百万条指令。5内存容量 存储器容量是衡量计算机存储二进制信息量大小的一个重要指标。微型计算机中一般以字节B(Byte的缩写)为单位表示存储容量,并且将1024B简称为1KB,1024KB简称为1MB(兆字节),1024MB简
14、称为1GB(吉字节),1024GB简称为1TB(太字节)。,本章小结,了解:计算机的发展简史、分类及其应用;总线结构。掌握:计算机系统组成;性能指标。,现代计算机有数字电子计算机和模拟电子计算机两大类。目前大量使用的计算机属于数字电子计算机,它只能接受0、1形式的数字数据。但是现实由计算机处理的信息形式各种各样,既有文字、数字、图形、图象等静态信息,亦有声音、动画、活动影像等动态信息,无论哪种形式的信息,现代计算机技术的发展,已经能很方便地把这些信息转换成0、1组合的数字数据形式输入计算机,进而由计算机进行存储、处理。本章将介绍计数制及其相互转换、数值数据、非数值数据信息的表示以及阐述计算机中
15、的数据校验。,第2章 计算机中数据的表示,2.1 计数制及其相互转换,1. 进位计数制 所谓进位计数制是指数的制式,是人们利用符号来计数的一种科学方法,它是指由低位向高位进位计数的方法。 进位计数制有很多种,如:十进制、十二进制(如十二个月为一年)、六十进制(如分、秒的计时)等等。但在微型计算机中常用的数制就是二进制。 数据无论使用哪种进位计数制,都包含两个基本要素:基数与位权。,1)数值的基数 一种进位计数制允许选用基本数字符号的个数称为基数。 例如最常用的十进制数,每一位上只允许选用0、1、2、3、4、5、6、7、8、9共10个不同数码中的一个,则十进制的基数为10,每一位计满10时向高位
16、进1。 因此,在j进制中,基数为j,包含0、1、2j-1共j个不同的数字符号,每个数位计满j就向高位进1,即“逢j进一”。,2)数值的位权 在一个数中,每个数字符号所表示的数值等于该数值符号值乘以与该数字符号所在位有关的常数,此常数就是“位权”,又简称“权”。它是计数制每一位所固有的值。位权的大小是以基数为底、数字符号所在的位置序号为指数的整数次幂。 注意,对任何一种进制数,整数部分最低位位置的序号是0,位置每高一位,序号加1,而小数部分位置序号为负值,位置每低一位,序号减1。 例如,十进制数的百分位、十分位、个位、十位、百位上的权依次是10的-2次方、-1次方、0次方、1次方、2次方。,3)
17、一个j进制数Nj按权展开的多项式和的一般表达式Nj=Kn-1jn-1 + Kn-2jn-2+ K1j1+ K0j0+ K-1j-1+K-mj-m例如,十进制数345.27按权展开的多项式和的一般表达式为:345.27=3102+4101+5100+210-1+710-2在上式中,10为基数,102、101、100、10-1、10-2为各位上的位权。,2.常见的几种进位计数制 1)十进制 十进制的基数为10,只有 0,1,2,3,4,5,6,7,8,9,共10 个数码(数字符号)。进位计数原则为“逢十进一”。十进制各位的位权是以10为底的幂 。 2)二进制 二进制的基数为2,只有 0,1共2个数
18、码(数字符号)。进位计数原则为“逢二进一”。二进制各位的权是以 2 为底的幂。二进制数的特点: 技术上容易实现,二进制运算规则简单 加法规则 减法规则 乘法规则 0 + 0 = 0 0 - 0 = 0 0 0 = 0 0 + 1 = 1 1 - 1 = 0 0 1 = 01 + 0 = 1 1 - 0 = 1 1 0 = 01 + 1 = 0且进位1 0 - 1 = 1且借位1 1 1 = 1 与逻辑变量0与1一致 与十进制数转换容易 3)八进制 八进制的基数为8,只有 0,1,2,3,4,5,6,7共8 个数码(数字符号)。进位计数原则为“逢八进一”。八进制的权为以8为底的幂。,4)十六进制
19、 十六进制的基数为16,只有 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16个数码(数字符号)。其中,A、B、C、D、E、F分别表示10、11、12、13、14、15。进位计数原则为“逢十六进一”。十六进制的权为以 16 为底的幂。 十六进制数的特点:用十六进制既可简化书写,又便于记忆。,进制数的表示既可以用数字表示,也可以用字母表示。 B二进制 O八进制 D十进制 H十六进制 注意,通常用Q表示八进制而不用字母O,目的是为了避免将O字母误认为是数字0。在表示十进制数时,数制符号(D或10)可以省略。例如:,十进制数23,可表示为23D或23(10)或23 二进制数110
20、110.01,可表示为110110.01B或110110.01(2) 3 .数制的转换 (1)二进制数和十进制数间的转换 1)二进制数转换成十进制数 只要把要转换的数按权展开后相加即可。例如: ll0l00lBl24十l23十l21十l2-226.25D,2)十进制数转换成二进制数 其转换过程为上述转换过程的逆过程,但十进制整数和小数转换成二进制的整数和小数的方法是不相同的。 十进制整数转换成二进制整数的方法有很多,最常用的是“除2取余法”,即除2取余,后余先排。 例: 将十进制数129转换成二进制数。 解:把129连续除以2,直到商数为0,余数小于2,其过程如下:,把所得余数按箭头方向从高到
21、低排列起来便可得到:129l0000001B,十进制小数转换成二进制小数通常采用“乘2取整法”,即乘2取整,整数顺排,直到所得乘积的小数部分为0或达到所需精度为止。 例: 将十进制数0.375转换成二进制数。 解:把0.375不断地乘2,取每次所得乘积的整数部分,余下的小数部分继续乘2,直到乘积的小数部分为0,其过程如下:,把所得整数按箭头方向从高到低排列后得到:0.375=0.011B,注意:对同时有整数和小数两部分的十进制数,其转换成二进制数的常用方法为:把它的整数和小数部分分开转换后,再合并起来。但应注意别忘了在整数部分和小数部分之间加小数点。,(2)十六进制和十进制数间的转换 1)十六
22、进制数转换成十进制数 方法和二进制数转换成十进制数的方法类似,即把十六进制数按权展开后相加。例如:5F7A.1H=5163+15162+7161+10160+116-1=24442.0625 2)十进制数转换成十六进制数 十进制整数转换成十六进制整数采用“除16取余法”,即除16取余,后余先排。,例如: 将十进制数3938转换成十六进制数。 解: 把3938连续除以l6,直到商数为0,余数小于16,其过程如下: 即得:3938F62H,十进制小数转换成十六进制小数采用“乘16取整法”:乘16取整,整数顺排,直到所得乘积的小数部分为0或达到所需精度为止。 例如:将十进制数0.566743转换成十
23、六进制数。(小数点后取3位有效数字) 解: 把0.566743连续乘以l6,直到所得乘积的小数部分达到所需精度为止,其过程如下:,同理:对同时有整数和小数两部分的十进制数,其转换成十六进制数的方法为:把它的整数和小数部分分开转换后,再合并起来。但应注意别忘了在整数部分和小数部分之间加小数点。,(3)二进制和十六进制数的转换 1)二进制数转换成十六进制数 其转换可采用“四位合一位法”。即:从二进制数的小数点开始,向左或向右每四位为一组,不足四位以0补足(整数部分不足4位,左边补0;小数部分不足4位,右边补0),然后分别把每组用十六进制数码表示,并按序相连即可。 例如: 将101011001101
24、01.1010010111001B转换成十六进制数。,2)十六进制转换成二进制数 其转换方法是把十六进制数的每位分别用四位二进制数码表示,然后把它们连成一体。 例如: 将十六进制数1A7.4C5H转换成二进制数。,即得:10101100110101.1010010111001B2B35.A5C8H注意:别忘了在整数部分和小数部分之间加小数点。,十进制数与任意进制数之间的相互转换和十进制与二进制之间的相互转换方法类似,本书就不在介绍,读者可以考虑一下。还可以考虑一下八进制数与二进制和十六进制之间怎样转换。,即得:1A7.4C5H =000110100111.010011000101B注意:别忘了
25、在整数部分和小数部分之间加小数点。,2.2 计算机中数值数据的表示,1 .机器数和真值 机器数-存储在计算机中的二进制数,数连同符号数字化,并以二进制编码形式存储 。 而机器数代表的数值称为机器数的真值。 注意:机器数和真值是完全不同的两个概念,它们在表示形式上也是不同的。机器数的最高位是符号位,除最高位后的其余位才表示数值。而真值没有符号位,它所有的数位均表示数值。,要完整地表示一个机器数,应考虑机器数的符号表示、有效值范围、小数点表示三个重要因素。 (1)机器数的符号表示 用二进制数的最高有效位约定为符号位(符号位只占1位),其它位表示数值。符号位为0表示正数,为1表示负数。小数点不占数位
26、(隐含)。 例如: 真值:N1=+0.1001B, N2=-0.1001B, N3=+1001B, N4=-1001B,对应机器数为: N1O.1001B,N2=1.1001B, N3=01001B, N4=11001B (2)机器数的有效值范围 机器数的数值范围,由计算机存放一个基本信息单元长度的硬件电路所决定。 基本信息单元的二进制位数称为字长,若字长为16位,所表示一个无符号整数范围为0000HFFFFH(十进制065535);若表示一个带符号数,则最高位为符号位,其他位表示数值,它所表示的整数范围为-7FFFH+7FFFH。,(3)机器数的小数点表示 在计算机中,用二进制表示实数的方法
27、有两种,即定点数和浮点数,小数点不占用数位。 1)定点数 所谓定点数,即小数点在数中的位置是固定不变的,约定小数点隐含在一个固定位置上。定点数表示通常又有两种方法。 方法1:约定小数点隐含在有效数值位的最高位之前,符号位之后,计算机中能表示的数都是纯小数,该数又被称为定点小数。 方法2:约定小数点隐含在最低位之后,计算机中能表示的数都是整数,该数又被称为定点整数。,两种定点数的表示如下图所示:2)浮点数 为了在位数有限的前提下扩大数值的表示范围,又保持数的有效精度,计算机采用浮点表示法。浮点表示法与科学计数法相似。浮点数是指一个数的小数点的位置是浮动的,不是固定的。,计算机中浮点表示是要把机器
28、数分为两部分,一部分表示阶码(指数,用有符号整数表示),另一部分表示尾数(数值的有效数字部分,一般用定点小数表示),阶码和尾数均有各自的符号位。即任意一个二进制数N可以写成下面的形式: Nd2P d是尾数,一般用定点二进制纯小数表示,是数值的有效数字部分。d前面的“”表示数的符号,用尾数的最高位表示,此符号常常称为数符或尾符;P称为阶码(或阶数),它前面的符号称为阶符,表示阶码的符号,用阶码的最高位表示。阶码和阶符指明小数点的位置,小数点随着P的符号和大小而浮动。,浮点数在机器中的一般表示形式如下图所示:2 . 机器数的表示 人们对机器数进行了各种编码,其中最常用的编码有原码、反码和补码。,(
29、1)原码表示法 设X的有效数码为X1X2Xn-1,其n位原码的定义如下: 当0X1时 ,X原=0.X1X2Xn-1 当-1X0时 ,X原=1.X1X2Xn-1 当0X2n-1且为整数时 ,X原=0X1X2Xn-1 当-2n-1X0且为整数时 ,X原=1X1X2Xn-1 其中,x原为机器数的原码,x为真值,n为机器的字长。,例如,n=8 +0原=00000000B -0原=10000000B +1原=00000001B -1原=10000001B +127原=01111111B -127原=11111111B +0.111011B原=0.1110110B -0.111011B原=1.111011
30、0B 由此可以看出:在原码表示中,0有+0和-0之分;在原码表示中,除符号位外,其余n-1位表示数的绝对值。原码表示定点整数的范围是-(2n-1-1)2n-1-1,定点小数的范围是-(1-2-(n-1)1-2-(n-1)。如n8时,定点整数的原码表示范围为-127+127。,(2)反码表示 设X的有效数码为X1X2Xn-1,其n位反码的定义如下: 当X0时,X反=0X1X2Xn-1 当X0时,X反=1X1X2Xn-1 例如,n=8 +0反=00000000B -0反=11111111B +1反=00000001B -1反=11111110B +127反=01111111B -127反=1000
31、0000B,由此可以看出:正数的反码与原码相同,负数的反码是保持原码的符号位不变,其余数值按位求反即可得到;在反码表示中,0也有+0和-0之分;在反码表示中,最高位仍为符号位,其余n-1位表示数的绝对值或与数值相关的信息。 反码表示定点整数的范围为 -(2n-1-1)2n-1-1,定点小数的范围是-(1-2-(n-1)1-2-(n-1)。当n=8时,定点整数的反码表示范围为-127+127。 反码的反码为对应真值的原码,即:X反反=X原。,(3)补码表示法 当0X1时 ,X补=X原 当-1X0时 ,X补=2-X 当0X2n-1且为整数时 ,X补=X原 当-2n-1X0且为整数时 ,X补=2n-
32、X 例如,n8 +0补=00000000B -0补=00000000B +1补=00000001B -1补=11111111B +127补=01111111B -127补=10000001B,由此可以看出:正数的补码与原码相同,负数的补码等于它的反码加1;在补码表示中,0没有+0和-0之分;在补码表示中,最高位仍为符号位,其余n-1位表示数的绝对值或与数值相关的信息。 补码表示定点整数的范围是 -2n-12n-1-1,定点小数的范围是-11-2-(n-1)当n=8时,定点整数的补码范围为-128+127。 补码的补码为对应真值的原码,即X补补=X原,3 .机器数的运算及溢出判断 1)机器数的运
33、算 在计算机内,一般采用机器数的补码加法运算。其运算原则为: x+y补 x补+y补 x-y补 x补+-y补 已知Y补求-Y补的方法:将Y补各位按位取反(包括符号位)末位加1。,例如: 已知:X = + 0001100B Y = + 0000101B 求: X + Y和X - Y 解:X补 = 00001100B Y补 = 00000101B -Y补=1 1111011B 计算 X + Y 0 0001100X补 +)0 0000101Y补 0 0010001X补+Y补 即:X补+ Y补 = 0 0010001B X + Y = + 0010001B=+17,计算 X Y 0 0001100X补
34、 +)1 1111011-Y补 1 0 0000111X补+-Y补自然丢失 即:X补+ - Y补= 0 0000111B X - Y = + 0000111B=+7D,2)机器数运算的溢出判断 溢出-超出了计算机表示数的范围。 在运用补码运算的两个公式时,要注意公式成立有个前提条件,就是运算结果不能超出机器数所能表示的范围,否则运算结果不正确,按“溢出”处理。例如:如果机器字长为8位,则-128N+127,计算(+64)+(+65) + 640 1000000+ + 65+)0 1000001 +1291 0000001-127 为什么(+64)+(+65)其结果值会是-127?这个结果显然是
35、错误的。究其原因是:(+64)+(+65)= +129+127,超出了字长为8位所能表示的最大值,产生了“溢出”,所以结果值出错。,在二进制数的计算中,我们还可以采用以下两种方法判断是否发生“溢出”。 (1)单符号位检测法 其具体方法为:当加数与被加数符号相同时,若运算结果的符号与它们不同,则表示溢出;若运算结果的符号与它们相同,则表示没有溢出。而当加数与被加数符号不同时,运算结果不会溢出(前提是:计算机能够表示加数和被加数)。 (2)双符号位检测法 双符号位检测又称变形码检测,其具体方法为:对参加运算的数均采用两个符号位,负数的符号位用11表示,正数的符号位用00表示,符号位和数值位一起参加
36、运算:若运算结果的两个符号位代码不同,则表示溢出;若运算结果的两个符号位代码相同,则表示没有溢出。,关于溢出判断,我们可以总结如下: a.相加的两个数均为正数,则其和一定为正数。若计算结果为负数,则一定发生了溢出。 b.相加的两个数均为负数,则其和一定为负数。若计算结果为正数,则一定发生了溢出。 c.相加的两个数一个为负数、一个为正数,则其和可能为负数,也可能为正数。其运算不会发生溢出(前提:计算机能表示这两个数)。,例如, 已知:X = -0.1001B Y = -0.1011B 求: X + Y 解:X补 = 1.0111B Y补 = 1.0101B 1.0111X补 +)1.0101Y补
37、 1 0.1100 X补+Y补 自然丢失 即:X补+ Y补 = 0.1100B 用单符号位检测法可知:发生溢出,此计算结果是不正确的。,例如, 已知:X = +0.1010B Y = +0.1101B 求: X + Y 解:X补 = 00.1010B Y补 = 00.1101B 00.1010X补 +)00.1101Y补 01.0111 X补+Y补 即:X补+ Y补 = 01.0111B 用双符号位检测法可知:发生溢出,此计算结果是不正确的。,2.3 计算机中非数值数据的表示,1 . 二-十进制数字编码 二-十进制即用二进制编码来表示十进制数,二进制是表示形式,本质是十进制。它又称为BCD码。
38、 其编码规则为:用4位二进制表示1位十进制数。 BCD码有很多种,其中,使用最广的BCD码为8421BCD码,其中8421是表示该编码各位所代表的位权。,(1)十进制数与8421BCD码之间的转换 1)十进制数转换成8421BCD码 只要将每位十进制数用四位二进制数组合即可。其具体过程如下: 109.10001 0000 l00l.0001(BCD) 215.050010 000l 0101.0000 0101(BCD) 2)8421BCD码转换成十进制数 将一个8421BCD码转换成十进制数,其转换方法为从8421BCD码的小数点开始,向左或向右每四位为一组,不足四位以0补足(整数部分不足4
39、位,左边补0;小数部分不足4位,右边补0),然后将每四位对应的十进制值写出,即为十进制数。,其具体过程如下:110000100l0l0l.001(BCD) 001l 0000 l001 0l0l.0010 (BCD) 3095.2(2)其它进制数与8421BCD码之间的转换 十进制数与8421BCD码之间的转换是直接的。而其它进制与8421BCD码之间的转换应首先将其转换成十进制数,然后将十进制转换成8421BCD码或首先将8421BCD码转换成十进制数,再将十进制数转换为目标进制数。,例如:将8421BCD码001l 0000.0010 (BCD)转换成相应的二进制数。 解: 首先,将842
40、1BCD码转换成十进制数: 001l 0000 0010 (BCD)=302D 然后,将十进制数30.2转换成二进制数: 302=100101110B2 .字符编码 微型机系统的字符编码多采用美国信息交换标推代码ASCII 。 ASCII码表有以下几个特点: 每个字符用7位基2码(基数为2的编码)表示,ASCII码共编码了128(27)个字符 具体特点请见ASCII字符集 。3 .汉字编码 一个汉字从输入设备输入到由输出设备输出需要经过以下过程: 1)汉字输入码 输入汉字的第一步是对汉字进行编码。,现在比较流行的编码方式有汉字字音编码、汉字字形编码、汉字音形编码等。 2)国标码 我国制定推行的
41、GB231280国家标准信息交换用汉字编码字符集(基本集),简称国标码。在国标码中,每个图形字符都规定了二进制表示的编码,每个编码字长为两字节,每字节内占用7 bit信息。每个字节的最高位为“0” 。 3)内码 汉字内部码是在国标码的基础上增加标识符的汉字代码。也是用2个字节表示一个汉字,其中每个字节的最高位为1。,例如 “啊”字,国标码是302lH,加上标识符后的汉字内部码则变为B0AlH。4)字形码 当计算机内的汉字要输出时,汉字内码还不能直接作为每个汉字的字形信息输出,而必须通过系统提供的汉字字模库检索出该汉字的字形信息后输出。,2.4 数据校验码,常用的代码校验方法有奇偶校验、交叉校验
42、和循环冗余校验三种方法。1. 奇偶校验码 其构成规则为:在每个传送码的左边或右边加上1位奇偶校验位“0”或“1”。若是奇校验,就把每个编码中1的个数凑成奇数;若是偶校验,就把每个编码中1的个数凑成偶数。 如需要传送的信息代码为0101010,若在最高位加奇校验位后代码为00101010;若在最高位加偶校验位后代码为10101010。,2 .交叉校验码 交叉校验-当一次传送百个字节组成的数据块时,如果不仅对每个字节设有扩展的1个奇偶校验位(称横向校验位),而且全部字节的同一位也设置了一个奇偶校验位(称纵向校验位),对数据块的横向、纵向同时校验。,本章小结,1.了解:基数、位权的概念;常见进制数的
43、特点;字符编码 2.掌握:进制转换;机器数的表示;补码运算;溢出判断;BCD码;奇偶校验。,第 3 章 计算机的基本数字逻辑电路,计算机的硬件系统是由许许多多的逻辑电路组成的。如算术逻辑单元电路、触发器电路、寄存器电路、存储器电路等等。本章仅对微型计算机中最常见的基本电路部件作一简单介绍。,3.1 逻辑代数,逻辑代数也称为开关代数或布尔代数,和一般代数不同的是: 逻辑代数中变量只有两种可能的数值:0或1。逻辑代数变量的数值并不表示大小,只代表某种物理量的状态。 逻辑代数只有 3 种基本运算方式方式:“与”运算(逻辑乘),“或”运算(逻辑加)及“取反”运算(逻辑非)。其它逻辑运算均由这三种基本运
44、算构成,如与非运算、或非运算、异或运算、同或运算等。下面我们就来看看这三种基本运算及其运算规则和一般代数有什么区别。,3.1.1 “与”运算 若逻辑变量A,B 进行与运算,L表示其运算结果,则其逻辑表达式为: L=AB或L=AB或L=AB 其基本运算规则为: 00=0 01=0 10=0 11=1 A1=A A0=0 AA=A A A =0,3.1.2 “或”运算 若逻辑变量A,B 进行或运算,L表示其运算结果,则其逻辑表达式为: L= A+B或L= AB 其基本运算规则为: 0+0=0 0+1=1 1+0=1 1+1=1 A+0=A A+1=1 A+A=A A+ A =1,3.1.3 “非”
45、运算 非运算又称逻辑取反或逻辑反运算。假设一件事物的性质为 A,则其经过“非”运算之后,其性质必与 A 相反,其表达式为: L= A 其基本运算规则为: 1 =0 0=1 1=1 0=0 A=A,3.1.4 逻辑代数的基本运算法则 1. 交换律: AB =BA A + B =B + A 2. 结合律:(AB)C =A(BC)=ABC (A +B)+C =A +(B +C)=A +B +C 3. 分配律:A(B +C)=AB +AC (A +B)(C +D)=AC +AD +BC +BD 4. 吸收律:A +AB =A(1 +B)=A A(A+B)=AA + AB =A + AB =A (A+B
46、)(A+C)=AA + AC + BA + BC =A + AC + AB + BC =A + AB + BC =A + BC,5. 消去律: 6. 反演律:,逻辑代数中的各种逻辑运算均可以通过对各种基本逻辑门的组合实现。“门”是这样的一种电路:它规定各个输入信号之间满足某种逻辑关系时,才有信号输出。 很多复杂的逻辑运算都可以通过基本的逻辑运算“与”、“或”、“非”来实现。实现这三种逻辑运算的电路是最基本的三种逻辑门电路:与门电路、或门电路和非门电路。通过组合这三个基本门电路,可实现更复杂的逻辑电路,如与非门电路、或非门电路、异或门电路和同或门电路等,分别用于完成与非、或非、异或和同或等逻辑运
47、算功能。,3.2 基本逻辑电路,与门的逻辑真值表,3.2.1 与门电路 实现逻辑运算“与”的电路称为与门电路。与门电路的逻辑符号如下图所示,其中A、B是输入信号,Y是输出信号。 与门电路的逻辑表达式为:Y=AB。 与门电路的逻辑真值表如下表所示。,3.2.2 或门电路 实现逻辑运算“或”的电路称为或门电路。或门电路的逻辑符号如下图所示,其中A、B是输入信号,Y是输出信号。 或门电路的逻辑表达式为:Y=A + B。 或门电路的逻辑真值表如下表所示。,或门的逻辑真值表,3.2.3 非门电路 实现逻辑运算“非”的电路称为非门电路。非门电路的逻辑符号如下图所示,其中A是输入信号,Y是输出信号。 非门电
48、路的逻辑表达式为:Y= A。由于输入和输出总是相反,故非门电路又称为反相器。非门电路的逻辑真值表如下表所示。,非门的逻辑真值表,3.2.4 与非门电路 实现逻辑运算“与非”的电路称为与非门电路。与非门电路是与门和非门相结合形成。与非门电路的逻辑符号如下图所示,其中A、B是输入信号,Y是输出信号。 与非门电路的逻辑表达式为:Y= 。 与非门电路的逻辑真值表如下表所示。,与非门的逻辑真值表,3.2.5 或非门电路 实现逻辑运算“或非”的电路称为或非门电路。或非门电路是或门和非门相结合形成。或非门电路的逻辑符号如下图所示,其中A、B是输入信号,Y是输出信号。 或非门电路的逻辑表达式为:Y= 。 或非
49、门电路的逻辑真值表如下表所示。,或非门的逻辑真值表,3.2.6 异或门电路 实现逻辑运算“异或”的电路称为异或门电路。异或门电路的逻辑符号如下图所示,其中A、B是输入信号,Y是输出信号。 异或门电路的逻辑表达式为:Y= 。 异或门电路的逻辑真值表如下表所示。,异或门的逻辑真值表,3.2.7 同或门电路 实现逻辑运算“同或”的电路称为同或门电路。同或门电路的逻辑符号如下图所示,其中A、B是输入信号,Y是输出信号。 同或门电路的逻辑表达式为:Y=AB。 同或门电路的逻辑真值表如下表所示。,同或门的逻辑真值表,3.3 二进制数的加、减法电路,3.3.1 二进制数的加法运算 两个二进制数相加时,可以逐
50、位相加。如二进制数可以写成: A =A3A2A1A0 B =B3B2B1B0 则从最右边第 1 位开始,逐位相加,其结果可以写成: S =S3S2S1S0 其中各位是分别求出的: S0=A0+B0进位 C1 S1=A1+B1+C1进位 C2 S2=A2+B2+C2进位 C3 S3=A3+B3+C3进位 C4 最后所得的和是: A + B = C4S3S2S1S0,3.3.2 半加器 半加器是用于逻辑变量相加的逻辑电路,它可以实现两个变量相加操作,是加法器的一种。半加器只有两个输入端,用以代表两个数字(A0,B0)的电位输入;有两个输出端,用以输出总和S0及进位C1。 其电路图、逻辑符号和真值表