计算机概述与数据表示和运算.ppt
山东师范大学信息科学与工程学院,微 机 原 理 Principles of computer,卢洪武 教授,前 言,为什么以单片机为例学习微机原理?随着微电子技术的日益进步,微型计算机向高性能的64位微机和适用于测控的单片微机两个方向迅速发展。单片微机是指在一块芯片上集成有CPU、ROM、RAM、并行和串行IO接口,以及定时器计数器等多种功能部件的微型计算机,这种微型计算机也可称之为微控制器。它具有集成度高,可靠性高,性能价格比高,适应温度范围宽,抗干扰能力强,小巧、灵活,易于实现机电一体化等优点,现已广泛应用于检测、控制、智能化仪器仪表,以及生产设备自动化、家用电器等领域。,计算机的产生加快了人类改造世界的步伐,但是它毕竟体积大。单片机在这种情况下诞生了,它为我们改变了什么?纵观我们现在生活的各个领域,从导弹的导航装置,到飞机上各种仪表的控制,从计算机的网络通讯与数据传输,到工业自动化过程的实时控制和数据处理,以及我们生活中广泛使用的各种智能IC卡、家用电器、电子宠物等,这些都离不开单片机。以前没有单片机时,这些东西只能使用复杂的模拟电路来做,然而这样做出来的产品不仅体积大,而且成本高,并且由于使用时间的延长元器件不断老化,控制的精度自然也会达不到标准。,在单片机产生后,我们控制这些东西就实现智能化了,我们只需要在单片机外围接一些简单的接口电路,需要的功能由人写入程序来完成。这样产品的体积变小了,成本也降低了,长期使用也不会担心精度达不到了。所以,它的魔力不仅是在现在,在将来将会有更多的人来接受它、使用它。据统计,我国的单片机年容量已达56亿片,且每年以大约20%的速度增长,但相对于世界市场我国的占有率还不到3%。单片机的应用程度标志一个国家的工业化水平。所以,学习单片机在我国有着广阔的前景。,为了促进大学生创新能力的培养,教育部大力倡导的大学生电子设计大赛、嵌入式系统设计大赛、“飞思卡尔”智能车设计大赛、全国电子专业人才设计与技能大赛、TI杯大学生电子设计大赛等都要求有较高的单片机应用水平。怎样才能学好微机原理呢?之所以我们选择以单片机为例学习微机原理除上述原因外,单片机还具有价格低廉,性能优越,功能齐全的特点。由于现代单片机中都集成了ISP(在系统可编程)功能,且开发工具、开发板极易得到。有一台计算机,化几十块钱,买一块开发板,或者自己用万用板焊一个单片机最小系统花不到20块钱就可以作实验了。大家都知道计算机是实践性很强的一门技术,有人说“计算机是玩出来的”,单片机亦一样,只有多练习、多实际操作,才能真正掌握。Practice is a best way to learning.,第一章概述及计算机数据基础,一、计算机发展与组成,二、单片机简介,1946年由美国宾夕法尼亚大学研制 ENIAC(Electronic Numerical Integrator And calculator),运算速度 5000次/秒,功耗150kw/h,占地170m2,造价100万美元。,一、计算机发展与组成,1946-1958 第一代电子管计算机。磁鼓存储器,机器语言、汇编语言编程。,1.1 发展概况,1958-1964 第二代晶体管计算机。磁芯作主存储器,磁盘作外存储器,开始使用高级语言编程。,1964-1971 第三代集成电路计算机。使用半导体存储器,出现多终端计算机和计算机网络。,1971-第四代大规模集成电路计算机。出现微型计算机、单片微型计算机,外部设备多样化。,1981-第五代人工智能计算机。模拟人的智能和交流方式。,世界上第一台计算机1946年2月15日,第一台计算机ENIAC问世,这标志着计算机时代的到来。ENIAC是电子管计算机,时钟频率仅有100 KHz,但能在1秒钟的时间内完成5000次加法运算。与现代的计算机相比,有许多 不足,但它的问世开创了计算 机科学技术的新纪元,对人类 的生产和生活方式产生了巨大 的影响。ENIAC的出现满足了人们计算的 需要,但它的体积实在太大了!,1.2 计算机发展趋势,微型化 便携式、低功耗巨型化 尖端科技领域的信息处理,需要超大容量、高速度智能化 模拟人类大脑思维和交流方式,多种处理能力系列化、标准化 便于各种计算机硬、软件兼容和升级网络化 网络计算机和信息高速公路多机系统 大型设备、生产流水线集中管理(独立控制、故障分散、资源共享),1.3 微型计算机组成结构,电子计算机技术的发展按使用元器件划分相继经历了五个时代:,电子管计算机;晶体管计算机;集成电路计算机;大规模集成电路计算机;超大规模集成电路计算机。,计算机的结构仍然没有突破冯诺依曼提出的计算机的经典结构框架。,计算机的冯诺依曼结构1946年6月,匈牙利籍数学家冯诺依曼提出了“程序存储”和“二进制运算”的思想,进一步构建了计算机由运算器、控制器、存储器、输入设备和输出设备组成这一计算机的经典结构。,二、单片机的发展过程及产品近况,2.1 单片机的发展过程,单片机技术发展过程可分为三个主要阶段:单芯片微机形成阶段 1976年,Intel公司推出了MCS-48系列单片机。8位CPU、1K字节ROM、64字节RAM、27根I/O线和1个8位定时/计数器。特点是:存储器容量较小,寻址范围小(不大于4K),无串行接口,指令系统功能不强。,性能完善提高阶段 1980年,Intel公司推出了MCS-51系列单片机:8位CPU、4K字节ROM、128字节RAM、4个8位并口、1个全双工串行口、2个16位定时/计数器。寻址范围64K,并有控制功能较强的布尔处理器。特点是:结构体系完善,性能已大大提高,面向控制的特点进一步突出。现在,MCS-51已成为公认的单片机经典机种。,微控制器化阶段,1982年,Intel推出MCS-96系列单片机。芯片内集成:16位CPU、8K字节ROM、232字节RAM、5个8位并口、1个全双工串行口、2个16位定时/计数器。寻址范围64K。片上还有8路10位ADC、1路PWM输出及高速I/O部件等。特点是:片内面向测控系统外围电路增强,使单片机可以方便灵活地用于复杂的自动测控系统及设备。“微控制器”的称谓更能反应单片机的本质。,2.2 单片机产品近况,ATMEL公司融入Flash存储器技术的AT89系列;Philips公司的80C51、80C552系列;华邦公司的W78C51、W77C51高速低价系列;ADI公司的ADC8xx高精度ADC系列;LG公司的GMS90/97低压高速系列;Maxim公司的DS89C420高速(50MIPS)系列;Cygnal公司的C8051F系列高速SOC单片机。,80C51系列单片机产品繁多,主流地位已经形成,近年来推出的与80C51兼容的主要产品有:,非80C51结构单片机新品不断推出,给用户提供了更为广泛的选择空间,近年来推出的非80C51系列的主要产品有:,Intel的MCS-96系列16位单片机;Microchip的PIC系列RISC单片机;TI的MSP430F系列16位低功耗单片机;Freescale单片机,具有几千种型号涵盖了从8位到32位的各种需求的单片机。,三、单片机的特点及应用领域,3.1 单片机的特点,近期推出的单片机产品,内部集成有高速I/O口、ADC、PWM、WDT等部件,并在低电压、低功耗、串行扩展总线、控制网络总线和开发方式(如在系统编程ISP)等方面都有了进一步的增强。,控制性能和可靠性高 实时控制功能特别强,其CPU可以对I/O端口直接进行操作,位操作能力更是其它计算机无法比拟的。另外,由于CPU、存储器及I/O接口集成在同一芯片内,各部件间的连接紧凑,数据在传送时受干扰的影响较小,且不易受环境条件的影响,所以单片机的可靠性非常高。,体积小、价格低、易于产品化 单片机芯片即是一台完整的微型计算机,对于批量大的专用场合,一方面可以在众多的单片机品种间进行匹配选择;同时还可以专门进行芯片设计,使芯片的功能与应用具有良好的对应关系;在单片机产品的引脚封装方面,有的单片机引脚已减少到8个或更少。从而使应用系统的印制板减小、接插件减少、安装简单方便。,3.2 单片机的应用领域,智能仪器仪表,单片机用于各种仪器仪表,一方面提高了仪器仪表的使用功能和精度,使仪器仪表智能化,同时还简化了仪器仪表的硬件结构,从而可以方便地完成仪器仪表产品的升级换代。如各种智能电气测量仪表、智能传感器等。,3.2 单片机的应用领域,单片机应用军事技术,3.2 单片机的应用领域,单片机应用汽车电子,机电一体化产品,机电一体化产品是集机械技术、微电子技术、自动化技术和计算机技术于一体,具有智能化特征的各种机电产品。单片机在机电一体化产品的开发中可以发挥巨大的作用。典型产品如机器人、数控机床、自动包装机、点钞机、医疗设备、打印机、传真机、复印机等。,单片机应用智能控制,实时工业控制,单片机还可以用于各种物理量的采集与控制。电流、电压、温度、液位、流量等物理参数的采集和控制均可以利用单片机方便地实现。在这类系统中,利用单片机作为系统控制器,可以根据被控对象的不同特征采用不同的智能算法,实现期望的控制指标,从而提高生产效率和产品质量。典型应用如机床控制、电机转速控制、温度控制、自动生产线等。,单片机在工业上的应用,数控车床,分布式系统的前端模块,在较复杂的工业系统中,经常要采用分布式测控系统完成大量的分布参数的采集。在这类系统中,采用单片机作为分布式系统的前端采集模块,系统具有运行可靠,数据采集方便灵活,成本低廉等一系列优点。,计算机外设控制器,智能化键盘、智能化显示器、智能化打印机、智能化软盘和硬盘驱动器、鼠标及智能化绘图仪等,均可用单片机作为控制器。,家用电器,家用电器是单片机的又一重要应用领域,前景十分广阔。如空调器、电冰箱、洗衣机、电饭煲、电子游戏机、电视机、录音机、组合音响、录像机、高档洗浴设备、高档玩具等。,另外,在交通领域中,汽车、火车、飞机、航天器等均有单片机的广泛应用。如汽车自动驾驶系统、航天测控系统、黑匣子等。,单片机的应用图例,四、单片机系统的开发过程 通常开发一个单片机系统可按以下几个步骤进行。(1)明确系统设计任务,完成单片机及其外围电路的选型工 作。(2)运用PROTEL、POWERPCB等软件设计系统原理图和PCB板,经仔细检查PCB板后送工厂制作。(3)完成器件的安装焊接。(4)根据硬件设计和系统要求编写应用程序。(5)在线调试软硬件。(6)使用编程器烧写单片机应用程序,独立运行单片机系统。,HW单片机仿真实验板,程序设计通常是C语言或者汇编语言,在特定的集成开发环境(IDE)中编程调试,比如应用最广泛的KEIL uVision2,四、单片机应用系统开发,调试硬件仿真器,硬件仿真器,目标系统,开发软件,四、单片机应用系统开发,调试使用SoftICE仿真,目标系统,通信数据线,开发软件,四、单片机应用系统开发,程序下载使用并行编程器,编程器驱动软件,单片机或单独存储器,并行编程器,四、单片机应用系统开发,程序下载使用ISP(In System Program在系统编程),ISP软件,下载线,目标系统,五、计算机的基本组成,冯诺依曼(Von Neumann)体系结构1946年由美籍匈牙利数学家冯 诺伊曼提出计算机的体系结构发生了许多变化,但Von Neumann提出的二进制、程序存储和程序控制,依然是普遍遵循的原则。冯诺伊曼的存储程序的计算机设计基本思想是:采用二进制表示数据和指令;指令由操作码和地址码组成。,5.1 冯诺依曼计算机的特点,采用存储程序即把编好的程序和原始数据预先存入计算机主存中,使计算机工作时能连续、自动、高速地从存储器中取出一条条指令并执行,从而自动完成预定的任务;即“存储程序”和“程序控制”(简称存储程序控制)的概念。指令的执行是顺序的,即一般按照指令在存储器中存放的顺序执行,程序分支由转移指令实现。计算机硬件系统由运算器、存储器、控制器、输入设备和输出设备五大部件组成,并规定了五大部件的基本功能。计算机以运算器为中心,输入输出设备与存储器之间的数据传送通过运算器完成。,算术运算逻辑运算,存放数据和程序,将信息转换成机器能识别的形式,将结果转换成人们熟悉的形式,指挥程序运行,冯诺依曼计算机硬件框图(以运算器为中心),冯诺依曼计算机硬件框图,二、计算机硬件框图,1.现代计算机硬件框图(以存储器为中心),ALU,主存辅存,CPU,主机,I/O设备,硬件,CU,2.现代计算机硬件框图,5.2 现代计算机硬件(五大部件),1、存储器 功能:存放指令和数据。操作:存储器读操作:从存储器取出数据,又称为读出。存储器写操作:向存储器存放数据,又称为写入;概念:存储单元:存储二进制信息的部件,每个单元可以存放一个字或字节的信息,存储器就是存储单元的集合。单元地址:存储单元的编号,是区分存储器中不同存储单元的唯一标志。,5.2 现代计算机硬件(五大部件),2、运算器功能:在控制器控制下,进行算术运算和逻辑运算。运算器的技术性能高低直接影响着计算机的运算速度和整机性能。3、控制器功能:对当前指令进行译码分析得出所需要完成的操作,产生并发送各部件所需要的控制信号,从而使整个计算机自动、协调地工作。控制器是计算机的控制指挥部件,也是整个计算机的控制中心。,5.2 现代计算机硬件(五大部件),4、输入设备功能:将外界的信息转换为计算机能识别的二进制代码。输入设备是给计算机输入信息的设备。5、输出设备功能:将计算机处理结果转换成人们或其他设备所能接收的形式。,5.3 微型计算机的结构,微型计算机的基本结构图,计算机中的三总线,从上图可以看出,当前广泛采用的微型计算机结构中,各部件是通过总线方式连接到一起的。控制信号、地址信号、数据信号分别通过控制总线、地址总线和数据总线传送。所谓总线(BUS),是指计算机中用于在各部件之间传输的信息的公共通道。总线实际上就是一些传输特定信号的传输线路,线路条数取决于微处理器本身的结构。总线有三种类型:数据总线、地址总线、控制总线。,1.数据总线:Data Bus,用于微处理器和存储器之间,以及微处理器同I/O接口之间进行数据传输。数据总线是双向的,既可以从CPU传输到外部,也可以从外部传输回CPU。CPU的字长往往同数据总线的条数相同。2.地址总线:Address Bus,用于CPU向存储器或者I/O接口传输地址信息。计算机执行访问操作时,不管是读操作,还是写操作,都是首先由CPU通过地址总线向访问目标发送地址信息。地址总线是单向的,即只能由CPU向外部传送地址信号。地址总线的条数决定CPU可以直接访问的存储器单元的数目。假设某CPU的地址总线的条数是n,则可访问的最大的存储空间的容量是2n。例如,假设一个存储单元保存一个字节的内容,则具有16条地址总线的CPU可访问的最大存储容量为216Byte=64KB。,3.控制总线:Control Bus,用于传输CPU发给各个部件的控制信号,以及传送其他部件回传到CPU的状态信号或请求信号。对每一条控制线,其传输方向的固定的,或者是CPU向外发出的控制信号,或者是其他部件传送给CPU的状态、请求信号。采用总线结构的优点是系统结构简单、规则、易于扩充。但由于总线是公共通道,当其被占用时,其他的传输请求只能等待,这对提高计算机的整体性能显然不利。在计算机中,不仅部件之间采用总线结构,部件内部也采用总线结构。甚至,多台计算机设备进行互联时,采用的也往往是总线结构。,5.4 微处理器的基本结构介绍,微处理器是微型计算机的核心。虽然不同厂家、不同型号的微处理器的结构、性能差异较大,但一些基本的部件是相似的。例如,微处理器包括运算器、控制器和一些寄存器,运算器主要包括ALU、累加器ACC、标志寄存器FR、寄存器组等,而控制器主要包括程序计数器PC、指令寄存器IR、指令译码器ID、地址寄存器AR、控制信号发生器等。下图表示传统微处理器的结构框图。,微处理器结构框图,1.算术逻辑单元ALU ALU是运算器的核心部件,它在控制器发出的控制信号的作用下,可执行算术运算和逻辑运算。执行运算的操作数提前放到累加器和数据寄存器中。算术运算一般包括加法、减法、加一、减一、比较等,也有的可以执行乘法、除法运算。逻辑运算一般包括逻辑与、逻辑或、逻辑非、逻辑异或、逻辑同或等。为配合以上运算,ALU还支持一些辅助操作,如移位操作等。,2.累加器A或ACC(Accumulator)累加器的英文原文是积累、集聚的意思,翻译成累加器有可能让读者理解为这是一种加法器。累加器实际上一个寄存器,往往用于存储送入ALU进行运算的某一个操作数。例如,执行加法运算时,其中一个加数送到累加器中,加法完成后的和最终也可送到累加器中。累加器是一个非常重要的寄存器,在很多指令中都会用到。,3.标志寄存器FR(Flag Register)计算机在运算过程中,可能产生很多标志位信息。例如,在执行加法或减法运算时,可能产生进位或借位,如果是带符号数的运算,还可能产生溢出位。另外,运算结果是负数或者是0,当前奇偶校验位是1还是0,等等,都是经常出现的位信息。这些位信息对计算机的下一步运算具有直接影响,因此有必要将他们单独保存起来,标志寄存器就是用于存放各种标志位信息的,是所有型号的微处理器都具备的一个重要寄存器。不同CPU所保存的标志位各不相同,但有些标志位是类似的,例如进位标志C、辅助进位AC、溢出标志OV、结果为零标志Z、符号标志S、奇偶标志P等。,4.寄存器组 学习CPU,寄存器组是必须要理解并重视的重要部件。因为用户在使用CPU时,一定会用到寄存器组。寄存器组分为两类:通用寄存器组和专用寄存器组。所谓通用寄存器组,可理解为CPU内部的较小容量的存储器,这些存储器用于暂时存放运算数或中间结果。由于通用寄存器在CPU内部,所以速度很快,这对提高运算速度是有好处的。例如累加器ACC就是通用寄存器。专用寄存器组是一些具有专门用途的寄存器的集合。例如标志寄存器FR、堆栈指针寄存器SP、程序计数器PC等等。,5.程序计数器PC(Program counter)程序计数器PC是CPU中最重要的专用寄存器,用于保存下一条要执行的指令的地址。指令保存在存储器的某个存储单元,每个单元对应一个地址。要执行哪条指令,就需要CPU把哪条指令的地址(存储在PC中)通过地址总线送到存储器。由于指令大部分是顺序执行的,也就是说,当PC的地址送到地址总线上后,可对PC的内容自动加1,使其指向下一条要执行的指令,从而可以继续执行指令。从这一方面看,PC的作用是非常重要的。当然,程序不一定总是顺序执行的,也存在跳转的可能。当跳转时,PC的内容除了自动加一外,还要执行一些调整操作以修改PC的指向。这在后文介绍指令系统时将有详细解释。,6.指令寄存器、指令译码器 指令寄存器(IR,Instruction Register)用于保存从存储器传送过来的指令信息,该信息在指令执行过程中一直存在。指令译码器(ID,Instruction Decoder)对指令寄存器送来的指令进行译码,产生各种电平控制信号。这些控制信号送到控制信号发生器。由指令译码器送出的电平信号同外部时钟脉冲在控制信号产生电路中组合,形成按照一定节拍变化的各种电平信号和脉冲信号,也就是生成各种控制信号。这些控制信号被送到运算器、存储器或I/O接口电路,执行各种操作。,5.5 程序执行过程,程序保存在外存储器中,需要执行时,系统首先将程序从外存储器调入到内存储器中。因为程序是有多条有序指令组成的指令集合,当将其调入到内存中后,每条指令都有自己的地址。开始执行程序前,程序的第一条指令的地址先送到程序计数器PC中。程序的执行过程就是按照一定的顺序将指令送到指令寄存器,再送到指令译码器,经过指令译码产生各种控制信号,通过控制部件发出这些控制信号控制相关部件动作的过程。一条指令的执行大致可分为两个过程:取指令阶段和执行指令阶段。“取指令”是从存储器的某存储单元将指令通过数据总线传送到指令寄存器的过程。“执行指令”是指将指令从指令寄存器IR中送到指令译码器ID,由ID对指令进行解释,然后通过控制部件执行的过程。,假设每条指令仅占一个存储单元,则程序执行的具体过程可描述为:1)控制器将PC当前内容送到地址寄存器AR,即送出当前指令的地址,然后PC自动加1。2)在控制器作用下,指令地址通过地址总线送到存储器的地址译码部件,由地址译码部件选中存储器的相应存储单元。3)控制器向存储器发出“读”指令的控制命令,存储器收到命令后,选中相应存储单元,并将其内容,也就是当前指令的机器码送到数据总线。4)通过数据总线,指令机器码送入指令寄存器IR,然后送到指令译码器ID译码,在控制信号产生器的作用下产生各种控制信号,执行各种操作。需要说明,当程序完全是顺序执行时,PC自动加1就可保证程序的自动、高效执行。但是当程序中存在跳转指令时,还需根据实际情况调整PC的取值。,思考练习题,(1)微型计算机由哪几部分组成?各部分的功能是什么?(2)微型计算机的各部分怎样连接?简述三总线的作用。(3)什么是单片机?它与一般微型计算机在结构上有什么区别?(4)单片机主要应用在哪些方面?(5)简述单片机的开发过程。,六、计算机中数据的表示与运算,引言:十进制数是人们习惯使用的进制。计算机只能“识别”二进制数。为了书写和识读方便,计算机程序需要用十六进制数表示。十进制数、二进制数、十六进制数之间的关系、相互转换和运算方法,是学习计算机必备的基础知识。,1、数值型数据的表示方式 1.1、符号的处理(正数、负数)1.2、数值的处理(数制转换)1.3、小数点的处理(定点、浮点)1.4、原码的表示方法1.5、反码的表示方法 1.6、补码的表示方法(重点研究)1.7、移码的表示方法 1.8、字符、汉字的表示方法,六、计算机中数据的表示与运算,机器数的表示方法,实际数的表示方法,研究在机器中怎样用二进制表示十进制数,研究哪种机器数的表示方法更利简化运算,通常我们把一个数(连同符号)在机器中数值化称后为:机器数,而把原来的数值称为:真值。一个实际数(如+8.75)通常由符号、数值、小数点三部分组成。因此,将一个实际数在计算机内部表示需要解决三个问题:1、符号的处理(+8.57)2、数值的处理(8.75)3、小数点的处理(8.75),1、数据的表示方式(从真值到机器数),真值+5=机器数 0101,1、数值型数据的表示方式 1.1、符号的处理(正数、负数)1.2、数值的处理(数制转换)1.3、小数点的处理(定点、浮点)1.4、原码的表示方法1.5、反码的表示方法 1.6、补码的表示方法(重点研究)1.7、移码的表示方法 1.8、字符、汉字的表示方法,六、计算机中数据的表示与运算,机器数的表示方法,实际数的表示方法,研究在机器中怎样用二进制表示十进制数,通常符号处理有两种方法:1)一种是舍弃符号,采用无符号表示;(时间、利率等)2)一种是采用符号,并对符号加以处理。如何处理符号呢?途径只有一条,即符号数码化。“0”表示 正,“1”表示 负。,1.1、符号的处理(正数、负数),真值:计算机中用 正负号+绝对值 表示的数。例如:+123,-123,+101011,-10101011机器数:计算机中把符号位和数值数码化以后的数。例如:+123=0 1111011-123=1 1111011+1010110=0 1010110-1010101=1 1010101 带符号的n位有效数,机器数为n+1位.,1、数值型数据的表示方式 1.1、符号的处理(正数、负数)1.2、数值的处理(数制转换)1.3、小数点的处理(定点、浮点)1.4、原码的表示方法1.5、反码的表示方法 1.6、补码的表示方法(重点研究)1.7、移码的表示方法 1.8、字符、汉字的表示方法,六、计算机中数据的表示与运算,机器数的表示方法,实际数的表示方法,1)直接采用二进制数表示 如(255)10=(11111111)2优点:在计算机中,数码是由电平的高低来表示的;通常高电平代表“1”,低电平代表“0”;所以采用二进制方便,容易实现。缺点:八个1表示255,二进制表示数码的效率太低,书写极其不方便。,1.2、数值的处理(数制转换),十进制数转换成二进制数:对一个数的整数部分和小数部分分别进行处理,合并各自得出结果。整数部分:采用除2取余数法。,例:将(105)10转换成二进制。2 105 余数结果 2 521最低位 2 260 2 130 2 61 2 30 2 11 01最高位 得出:(105)10=(1101001)2,直到商等于0为止,1.2、数值的处理(数制转换),直到乘积的小数部分为0,或结果已满足所需精度要求为止,十进制数转换成二进制数:对一个数的整数部分和小数部分分别进行处理,合并各自得出结果。小数部分:采用乘2取整数法。,例:将(0.3125)10转换成二进制数(要求4位有效位)。,结果 0.31252最高位 0.62502 1.25002 0.50002最低位 1.0000 得出:(0.3125)10=(0.0101)2,1.2、数值的处理(数制转换),十进制数转换成二进制数:对一个数的整数部分和小数部分分别进行处理,合并各自得出结果。,例:将(105.3125)10转换成二进制数(要求4位有效位)。,前面计算得出:(105)10=(1101001)2前面计算得出:(0.3125)10=(0.0101)2,得出:(105.3125)10=(1101001.0101)2,1.2、数值的处理(数制转换),直到乘积的小数部分为0,或结果已满足所需精度要求为止.,例:将(0.1)10转换成二进制数(要求5位有效位)。,结果 0.12最高位 0.22 0.42 0.82 1.62 1.22 0.42 0.82最低位 1.6000得出:(0.1)10=(0.00011)2,可能永远乘不完,小数部分不为0,意味存在一点误差。,1.2、数值的处理(数制转换),2)引进组合二进制数:八、十六进制数从最低有效位开始,三位一划分,组成八进制 Q;从最低有效位开始,四位一划分,组成十六进制 H。例如:二进制110101111001 6571Q 八进制110101111001 D79H 十六进制,注意:八、十六进制的引进,是为了人书写方便而已,在机器内部表示都是一样的,不需要编码、译码。,1.2、数值的处理(数制转换),1.2、数值的处理(数制转换),二进制数、八进制数、十六进制之间的转换对于一个兼有整数和小数部分的数,以小数点为界,不足的位数补0。对整数部分将0补在数的左侧,对小数部分将0补在数的右侧。例:从二进制数转换到八进制数,则以3位为1组(1 101.010 1)2=(001 101.010 100)2=(15.24)8 例:从二进制数转换到十六进制数,则以4位为1组。(1 1101.0101)2=(0001 1101.0101)2=(1D.5)16八进制、十六进制数转换到二进制,顺序将每位数展开写成3或4位。例:(15.24)8=(001 101.010 100)2=(1101.0101)2,八进制数与十六进制数之间,可将二进制数作为中介进行转换。,1.2、数值的处理(数制转换),3)BCD码(十进制):如果计算机以二进制进行运算和处理时,只要在输入输出处理时进行二/十进制转换即可。但在商业统计中,二/十进制转换存在两个问题:(1)转换占用实际运算很大的时间;(2)十进制的0.1,无法用二进制精确表示;且十进制数0.1+0.1=0.2,在二进制中无法得到精确的数值,会存在一个小误差。因此,在商用计算机中,专门设计适用于十进制运算的电路,这时的十进制数一般采用BCD码表示。,1.2、数值的处理(数制转换),由于ASCII码低四位与BCD码相同,转换方便。ASCII码左移四位得BCD码,BCD码前加0011得ASCII码。一般采用二进制运算的计算机中不采用BCD码,矫正不方便。商用计算机中采用BCD码,专门设置有十进制运算电路。,十进制BCD码 二进制数 十六进制数 ASCII码 0 0000 0000000110000 1 0001 0001100110001 9 1001 1001900111001 10 0001 0000 1010A 16 0001 0110 1111F,从键盘输入输出的是ASCII码,1.2、数值的处理(数制转换),BCD码算术运算,要对运算结果进行修正。加法运算的修正规则是:两个一位BCD码相加之和小于或等于 9,不修正;相加之和大于或等于10,加6修正,并向高位进位。,4+9=13 0 1 0 0+1 0 0 1 1 1 0 1+0 1 1 0 修正 1 0 0 1 1进位,1+8=9 0 0 0 1+1 0 0 0 1 0 0 1不需要修正,9+7=16 1 0 0 1+0 1 1 11 0 0 0 0+0 1 1 0 修正 1 0 1 1 0进位,1.2、数值的处理(数制转换),1、数值型数据的表示方式 1.1、符号的处理(正数、负数)1.2、数值的处理(数制转换)1.3、小数点的处理(定点、浮点)1.4、原码的表示方法1.5、反码的表示方法 1.6、补码的表示方法(重点研究)1.7、移码的表示方法 1.8、字符、汉字的表示方法,六、计算机中数据的表示与运算,机器数的表示方法,实际数的表示方法,小数点可否数码化?如 10110011,你能鉴别哪一位数码表示小数点吗?答案:不能!无法与数位相区别。,1.3、小数点的处理(定点、浮点),定点数:小数点固定在某个位置上的数据(隐含约定,不出现)。定点小数:小数点固定在数值部分的左边,符号位的右边。定点整数:小数点固定在数值部分的右边。定点数的表示范围是有限的,但硬件的设计比较简单。浮点数:指小数点位置可浮动的数据。,1、定点数的表示方法:例如:123.45=0.12345 X 10 3 纯小数 123.45=12345 X 10-2 纯整数 假设用一个n+1位表示定点数 X=X0 X1X2Xn,X0:表示符号(放在最左位置,“0”正号/“1”负号),X1X2Xn:其余位数代表数值。对于任意一个定点数,在定点计算机中数的表示格式如下:X0 X1X2 Xn,尾数(数值),符号,1.3、小数点的处理(定点、浮点),定点小数:小数点位于在 X0 和 X1 之间,表示纯小数。数值范围:当X1X2Xn各位是0时:0.0000000,|X|最小=0 当X1X2Xn各位是1时:0.1111111,|X|最大=1-2-n 0|X|1-2-n,X0 X1X2 Xn,尾数(数值),符号,小数点的这个点在计算机中是隐含约定的,不出现的。,1.3、小数点的处理(定点、浮点),定点整数:小数点位于最低位的右边。数值范围:当X1X2Xn各位是0时:0 0000000,|X|最小=0 当X1X2Xn各位是1时:01111111,|X|最大=2n+1-1 0|X|2n+1-1,X0 X1X2 Xn,尾数(数值),符号,1.3、小数点的处理(定点、浮点),小数点的这个点在计算机中是隐含约定的,不出现的。,定点小数数值表示:X=X0 X1X2Xn X0=0,Xi=0,1,0in X12-1+Xn-12-n+1+Xn2-n例如:X=0.10101 其数值=2-1+2-3+2-5=21/32,定点整数数值表示:X=X0 X1X2XnXi=0,1,0in X02n+X12n-1+Xn-121+Xn例如:X=010101 其数值=24+22+20=21,1.3、小数点的处理(定点、浮点),阶码,浮点数的机器格式:,尾数,阶符,数符,浮点数:小数点的位置根据需要而浮动。N=S rj r:基数,通常r=2。j:阶码,常为纯整数,用移码或补码表示。S:尾数,常为纯小数,用原码或补码表示。j和S都是带符号的数 例如:10011101*2 01101000,0 1101000,1 0011101,现在大部分计算机都是采用浮点运算。,0.312 X 10 3,1.3、小数点的处理(定点、浮点),一个实际数(如+8.75)通常由数值、小数点、符号、三部分组成。因此,将一个实际数在计算机内部表示需要解决三个问题:1、符号处理(+8.57)正号“0”、负号“1”2、数值的处理(8.75)二进制(八进制、十六进制、十进制BCD编码)3、小数点的处理(8.75)定点数(定点小数、定点整数);浮点数,小结:真值表示为机器数解决的三个问题,1、数值型数据的表示方式 1.1、符号的处理(正数、负数)1.2、数值的处理(数制转换)1.3、小数点的处理(定点、浮点)1.4、原码的表示方法1.5、反码的表示方法 1.6、补码的表示方法(重点研究)1.7、移码的表示方法 1.8、字符、汉字的表示方法,六、计算机中数据表示与的运算,机器数的表示方法,实际数的表示方法,研究哪种机器数表示方法更利于简化运算,计算机中的机器数常用三种不同的表示方法:原码、补码、反码。,原码的表示方法:一个二进制数 X=X0 X1X2 Xn,原码的编码方法是 当 X 0 时,X原的代码是:0 X1X2 Xn 当 X 0 时,X原的代码是:1 X1X2 Xn X0是符号位 X1X2 Xn是数据的二进制数值。,1.4、原码的表示方法,一位符号+数据的绝对值,1)原码定点整数的表示方法(X0X1X2 Xn)X原=X 2nx0 2n-x=2n+|x|0 x-2n X原是机器数,X是真值(即实际数)。一个n+1位整数,原码能表示的数值范围是:(11111)-2n+1 x 2n-1(01111)对于给定的原码X原,它的十进制数X为:X=(-1)x0(x12n-1+xn-121+xn20)例如:假设x=1010,y=-1010,求x原,y原 解:原码数值部分与它的二进制位相同,加上符号位后 得 X原=01010 y原=11010,1.4、原码的表示方法,2)原码定点小数的表示方法(X0X1X2 Xn)X原=X 1x0 1-X=1+|X|0 x-1 一个n+1位的定点小数原码能表示的数值范围为:(1.1111)-1+2-nx1-2-n(0.1111)对给定的小数原码x原,它的十进制数x为:X=(-1)x0(x12-1+xn-12-(n-1)+xn2-n)例如:假设x=0.1010,y=-0.1010 求 x原 y原.解:原码数值部分与它的二进制位相同,加上符号位后 X原=0.1010 y原=1.1010,1.4、原码的表示方法,例:已知x原=1.1010101,求X的真值?解:X真值=-0.1010101(二进制形式写)也可根据以下公式求得:X真值=(-1)x0(x12-1+xn-12-(n-1)+xn2-n)X真值=(-1)1(12-1+02-2+12-3+02-4+12-5+02-6+12-7)=(-1)(0.5+0.125+0.03125+0.0078125)=-0.6640625(一般真值用十进制形式写),1.4、原码的表示方法,对给定的小数原码x原,它的十进制数X为:X=(-1)x0(x12-1+xn-12-(n-1)+xn2-n),原码的性质优点:采用原码表示法简单易懂,乘除法运算的规则比较简单。缺点:1)在原码表示中,“0”有两种表示方法,即:+0=0000 和-0=1000。2)加减法运算的实现比较复杂。两个数相加时需要对符号进行判断,如果同号,则进行加法运算,如果异号,则进行减法运算。而在进行减法运算时,还要比较绝对值的大小,然后用大的减去小的,再确定符号,1.4、原码的表示方法,原码的性质例如:X=-1001(-9)10 Y=+0011(+3)10 计算X+Y 机器数直接相加 X原+Y原=11001+00011=11100 结果 X+Y原=11100 X+Y的真值为-1100 即(-12)10 结果错误!,1.4、原码的表示方法,直接采用原码运算是不行的!处理负数运算太复杂!,1、数值型数据的表示方式 1.1、符号的处理(正数、负数)1.2、数值的处理(数制转换)1.3、小数点的处理(定点、浮点)1.4、原码的表示方法1.5、反码的表示方法 1.6、补码的表示方法(重点研究