国开计算机组成原理期末复习题及参考答案_第1页
国开计算机组成原理期末复习题及参考答案_第2页
国开计算机组成原理期末复习题及参考答案_第3页
国开计算机组成原理期末复习题及参考答案_第4页
国开计算机组成原理期末复习题及参考答案_第5页
已阅读5页,还剩147页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

完整的计算机系统由硬件(hardware)和软件(software)两大部分

(两类资源)组成。计算机的硬件系统是计算机系统中的物理设备,是

一种高度复杂的、由多种电子线路、精密机械装置等构成的、能自动并

且高速地完成数据计算的装置或者工具。

计算机的软件系统是计算机系统中的程序和相关数据,包括完成计算机

资源管理、方便用户使用的系统软件(厂家提供),和完成用户对数据

的预期处理功能的用户软件(用户设计并自己使用)这样两大部分。

计算机的硬、软件,二者相互依存,分工互动,缺一不可。硬件是计算

机系统中保存与运行软件程序的物质基础,软件则是指挥硬件完成预期

功能的智力部分。但是,计算机的硬件和软件在逻辑功能上是等效的。

这就是说,由软件实现的操作,在原理上是可以由硬件来实现。同样,

由硬件实现的许多操作在原理上也可以由软件的模拟来实现。

计算机硬件和软件系统的组成关系(计算机系统的层次结构)可以从如

图1.1所示的六个层次来认识。图中最下面的2层(第0层数字逻辑

层、第1层微体系结构层)属于硬件部分,最上面的3层(第3层操

作系统层、第4层汇编语言层、第5层高级语言层)属于软件部分,

而中间的第2层指令系统层连接了硬件和软件两部分,与两部分都有

密切关系。

第0层:数字逻辑层。这说明实现计算机硬件的最重要的物质材料是电

子线路,是能够直接处理离散的数字信号数字逻辑电路。涉及到的计

算机硬件的基础知识就是数字逻辑和数字门电路,使用何种电路实现

信息存储、信息传送以及信息运算与加工,是这一层要解决的基本问

题。

第1层:微体系结构(microarchitecture)层,也可以称其为计算机

裸机。计算机的核心功能是执行程序,程序是按一定规则和顺序组织

起来的指令序列。这一层体现的是,为了执行指令,需要在计算机中

设置哪些功能部件(例如:存储、运算、输入和输出、接口和总线等

部件,以及控制器部件),每个部件又如何具体组成和怎样运行,这

些部件如何实现相互连接并协同工作等方面的知识和技术。

通常,计算机硬件系统由运算器部件(数据通路)、控制器部件、存储

器部件、输入设备、输出设备5部分组成。这个层次是计算机组成原理

的主要内容。

第2层:指令系统(instructionset)层,它介于硬件和软件之间。这

涉及到需要确定使用哪些指令,指令能够处理的数据类型和对其运算所

用的算法,每一条指令的格式和完成的功能,如何指出想要对其执行

读操作或者写操作的存储器的一个存储单元,如何指出想要执行输入

或者输出操作的一个外围设备,对哪一个或二个数据进行运算,执行

哪一种运算、如何保存计算结果等。指令系统是计算机硬件系统设计、

实现的最基本和最重要的依据,与计算机硬件实现的复杂程度、设计

程序的难易程度、程序占用硬件资源的多少、程序运行的效率等都直接

相关,说到底,硬件系统就是要实现每一条指令的功能,能够识别和

执行由指令代码序列组成的程序。当然,指令系统与计算机软件的关

系也十分密切,指令是用于设计程序的,到了计算机内部,全部的程

序最终都是由指令系统所提供的指令代码组成的,计算机硬件能够直

接识别和执行的只能是由指令代码组成的程序。

第3层:操作系统(operatingsystem)层。它主要分担计算机系统

中的资源管理与分配,也向使用者和程序设计人员提供简单、方便、

高效的服务。它是使用(直接或者间接)计算机硬件指令系统所提供

的指令设计出来的程序,并把一些常用功能以操作命令或者系统调用

的方式提供给使用人员。

第4层:汇编语言(assemblylanguage)层。计算机的硬件可以直

接识别、理解的,用电子线路容易处理的就是计算机的机器语言,又

称为二进制代码语言,也就是计算机的指令。一台计算机的全部指令构

成该计算机的指令系统。由此可以看出,实质上计算机的基础硬件是

在机器语言的层次上被设计与实现的,并且可以直接识别和执行的只能

是由机器语言构成的程序。

汇编语言是对计算机机器语言的符号化处理(采用英文)的结果,再

增加一些为方便程序设计而实现的扩展功能。与机器语言相比,汇编

语言至少有2大优点。首先实现用英文单词或其缩写形式替代二进制的

指令代码,更容易为人们记忆和理解;其次是可以选用含义明确的英

文单词来表示程序中用到的数据(常量和变量),并且避免程序设计

人员亲自花费精力为这些数据分配存储单元。如果在此基础上,还可

以在支持程序的不同结构特性(如循环和重复执行等结构),子程序

所用形式参数替换为真实参数等方面提供必要的支持。

采用汇编语言设计的程序必须经过一个叫做汇编程序的系统软件进行

翻译,将其转换为计算机的机器语言后,才能在计算机的硬件系统上

予以执行。

第5层:高级语言层,高级语言又称算法语言(algorithmlanguage),

它的实现思路,不再是过分地〃靠拢〃计算机硬件的指令系统,而是

着重面向解决实际问题所用的算法,为方便程序设计人员写出自己解决

问题过程的程序。目前常用的高级语言有BASIC.C、C++、,PASCAL、

JAVA、PROLOG等多种。

用这些高级语言设计出来的程序,通常需要经过一个叫做编译程序的软

件编译成机器语言程序,或者首先编译成汇编程序后,再经过汇编操

作后得到机器语言程序,才能在计算机的硬件系统上予以执行;也可

以由一个叫做解释执行程序的软件,逐条取来相应高级语言程序的每个

语句并直接控制其完成执行过程,而不是把整个程序编译为机器语言

程序之后再交给硬件系统加以执行,解释执行程序的最大缺点是运行效

率比很低。

在高级语言层之上,还可以有应用层,由解决实际问题的处理程序组成,

例如文字处理软件,数据库软件,网络软件,多媒体信息处理软件,办

公自动化软件等。

5.高级语言层

4.汇编语言层

t

3.操作系统层

2.指令系统层

t

0.数字逻辑层

图1.1计算机系统层次结构

运算器是对数字信息进行加工处理的部件,它用来对二进制的数据进行

算术运算与逻辑运算,故称"算术逻辑运算部件(ALU厂。运算器主

要由寄存器和算术逻辑线路构成。寄存器用来存放数据,算术逻辑线路

主要是完成各种运算功能。算术运算是指加、减、乘、除四则运算,而

各种运算都可以归结为加法与移位两个基本操作,所以算术逻辑线路核

心部分是加法器。

存储器是用来存放程序和数据的部件。计算机存储系统一般分为主存储

器和外存储器。主存储器由半导体存储元件构成,它存取速度快,但容

量小。而外存储器通常由磁盘存储器组成,它的存取速度慢,但是容量

大。在运算过程中主存储器直接与中央处理器(CPU)交换信息,而外

存储器必须将它的信息传送到主存储器后才能由CPU来处理。

存储器的基本构成单元是存储元件,存取信息是以一个单元来进行的,

每个存取单元可以存放一串二进制信息,各单元的位数相同。为了区分

存储体内的不同的存储单元,通常将每个单元统一编号,这个号码称为

存储单元的“地址

整个存储器是由存储体、选址系统、读写系统、数据缓冲寄存器,以及

有关控制线路组成。存储器的工作过程分为读出过程与写入过程。读出

时,将被选址存储单元的内容读到数据缓冲寄存器,提供CPU使用。

写入时,将要写入的信息送到数据缓冲寄存器中,然后写入到被指定的

存储单元内。

控制器主要功能是根据预先编好的程序,不断从主存中取出指令,分析

指令产生各种控制信号,从而指挥协调计算机各部件自动工作(执行指

令)。

控制器最基本的组成部分有:指示指令执行顺序的程序计数器(PC),

寄存现行指令的指令寄存器(IR),分析指令的指令译码器(ID),产

生控制命令序列的控制信号形成部件。

输入输出设备是实现人与计算机之间相互联系的部件,其主要功能是实

现人——机对话,数据的输入与输出,以及各种形式的数据变换等。

输入设备的功能是向计算利崎入人们提供的程序和原始数据,并将其转

化成计算机能识别的信号,存入存储器中。输入设备的种类很多,如键

盘、鼠标、触摸屏、扫描仪等。

输出设备是将计算机加工处理过的二进制信息转换为用户所需要的数

据形式的设备。它将计算机的信息以字符、图形、表格等形式显示打印

出来。输出设备的种类有,如打印机、显示器等。有些设备同时具有输

入与输出的功能,如磁盘、光盘、网络设备等。

系统总线是构成计算机系统的骨架,是上述多个系统部件之间进行数据

传送的公共通路。系统总线分为数据总线、地址总线、控制总线三类。

其中数据总线用于在这些部件或设备之间传送数据信息(指令和数据)

的电气信号;地址总线,用于在这些部件或设备之间传送属于地址信息

的电气信号,以选择存储部件中的一个存储单元,或者外围设备中的一

个设备方空制总线,用于向存储部件和外围设备传送起控制作用的信号,

也就是指定在CPU和这些部件或者设备之间数据传送的方向以及操作

的性质(读操作还是写操作)等。

计算机的5个功能部件正是通过这些总线被有机地连接在一起,从而构

成一台完整的、可以协调运行(执行程序)的计算机硬件系统。

图1.2计算机硬件系统的组成示意图

点击图片查看动画演示

在计算机中,普遍的体系结构是由冯・诺依曼提出来的被称之为存储程序

的计算机体系结构,早期计算机的几个部件是围绕着运算器部件来组织

的,如图1.3(a)所示,其特点是在存储器和输入输出设备之间传送数

据都是经过运算器完成的。

在当前流行的计算机中,更常用的方案则是围绕着存储器部件来组织,

如图13(b)所示。两个方案相比,并无实质性的区别,只是使输入

输出操作尽可能地绕过CPU,直接在输入输出设备和存储器系统之间

完成,以提高系统的整体运行性能。

存储器

原始

部件运算

结果

I输入运算器输出

输出

设备।।部件「设备।

设备

控制器H\

........I部件I........

方案(a)方案(b)

图1.3计算机的组成结构

字长是指参与运算的数的基本位数。它决定着寄存器、加法器、数据总

线等部件的位数。因为指令和数据都存放在存储器中,字长与指令有着

密切的对应关系。例如在32位字长的计算矶系统中,一个整数、一条

指令通常都用32位二进制数表示,叫做一个字,运算器、存储器、数

据和地址总线等通常都被设计成32位。字长对计算机的处理能力和运

行性能有明显影响,字长长一点有利于提高计算机的性能,但需要使用

更多的硬件,计算机系统的价格也会高一些。

第一种方式使用CPU主频,即CPU系统使用的时钟脉冲的频率(每一

秒钟提供的时钟脉冲的个数称为赫兹Hz)来表示,例如500MHz。对

同一个型号的计算机,其主频越高,完成指令的一个执行步骤所用的时

间越短,执行指令的速度越快,但对不同厂家、不同系列的计算机系统,

只用CPU主频来说明其运行速度就未必准确。

第二种方式使用CPU每一秒钟能执行的指令条数,由于在计算机中用

于计算整数的指令和计算机浮点数(实数)的指令执行速度差异较大,

不同程序中这两类指令所占的比例也有很大不同,为此人们还分别用

MIPS(每秒百万次整数运算)、MFLOPS(每秒百万次浮点数运算)

描述整数指令和浮点数指令的执行速度,以便对比不同计算机系统的

CPU性能水平。

存储器的容量,通常情况下用字节(Byte,8个二进制位构成一个字节)

表示,32位的字由4个字节组成。存储器的容量大,就可以保存更多

的信息,计算机运行的速度就可以更快,相应的硬件成本也就更高。

目前计算机的内存容量由几十、几百兆字节(简写为MB)、甚至几十、

上百G字节(简写为GB)组成。外存储器的容量一般是几十、几百个

GB,采用阵列技术则可以得至熔量更大得多的外存储器系统。

内存储器的读写周期是指启动连续的两次读写操作所必需的时间间隔,

当前的内存储器存取周期为几十个纳秒到一、二百个纳秒(ns),读写

速度快的存储器价格要贵一些,要合理选用。

通常把单位时间内可以对磁盘设备读写的数据数量称为设备的传输速

率(MB/S,兆字节徽),外存设备的传输速率是影响计算机系统性能

的一个重要因素,特别是用作为服务器之类计算机更是如此。目前磁盘

设备的传输速率可以达到33MB/S〜200MB/S。这个速率不仅与设备本

身的性能有关,与设备的接口性能和计算机总线设计也直接相关。在选

用磁盘阵列技术之后,其传输速率得到大幅度提高。

输入输出设备是计算机系统中比较复杂的部分,其组成和运行原理各不

相同,与计算机主机的连接与控制方式也多有差异,在电子线路之外还

涉及到精密机械、光学、激光、电磁转换等许多技术。不同的输入输出

设备的运行速度各不相同,例如针式打印机每秒只能打印几个字符,而

激光打印机则可以打印多行甚至几页打印纸的信息C

通常是指涉及机器语言或者汇编语言的程序设计人员所见到的计算机

系统的属性,更多说的是计算机的外特性,是硬件子系统的结构概念及

其功能特性。计算机体系结构主要研究硬件和软件功能的划分,确定硬

件和软件的界面,即哪些功能应划分给硬件子系统完成,哪些功能应划

分到软件子系统中完成。

对于目前的通用型机器,计算机体系结构一般包括:

数据表示(计算机硬件能够直接识别和处理的数据类型及其表示、存储、

读写方式);

寻址方式(最小寻址单位、支持的寻址方式、表示和地址计算等);

寄存器组织(指令中使用的寄存器数量和表示方法);

指令系统(计算机的字长一指令系统的组成,指令类别、格式和功能);

存储系统(存储器寻址方式、主存容量、最大寻址空间等);

中断机构(中断的类型和处理流程);

机器工作状态(计算机的运行状态的定义和切换);

机器级的输入输出纭构(输入输出设备和CPU之间数据传送的方式和

控制);

信息保护(系统中对各类信息的保护,对各种运行异常或者出错的检测

和处理方案等)。

是依据计算机体系结构确定并且分配了硬件子系统的概念结构和功能

特性的基础上,设计计算机各部件的具体组成,它们之间的连接关系,

实现机器指令级的各种功能和特性。从这一点又可以说,计算机组成是

计算机体系结构的逻辑实现。为了实现相同的计算机体系结构所要求的

功能,完全可以有多种不同的计算机组成设计方案。

在计算机组成的领域内,需要重点解决的问题之一是合理的性能价格

比,关键的技术措施在于处理好计算机内部的数据流和控制流,合理地

匹配各功能部件的性能参数,也就是尽力避免因一个部件形成的“瓶颈”

问题而影响计算机的整体性能。

是计算机组成的物理实现。包括中央处理机、主存储器、输入输出接口

和设备的物理结构,所选用的半导体器件的集成度和速度,器件、模块、

插件、底板的划分,电源、冷却、装配等技术,生产工艺和系统调试等

各种问题,一句话,就是把完成逻辑设计的计算机组成方案转换为真实

的计算机,也就是把满足设计和运行、价格等各项要求的计算机系统真

正地制作并调试出来。

从制作计算机使用的元器件的不同,计算机系统的发展,依次经历了:

1.电子管时代(1946年——1958年)

电子管

1946年第一代

电子管电子计算机ENIAC

2.晶体管时代(1958年——1964年)

第二代晶体管电子计算机IBM7094

3.小规模集成电路时代(1964年—1975年)

4.大规模、超大规模集成电路时代(1975年——)

展勾史I

大规模集成电路1M

第四代大规模集成电路

微型机、笔记本・.平犍脑、IBM超级计算机

如果依据计算机所提供的功能和运行性能来划分,可以把计算机划分为

巨型计算机,大型计算机,中小型计算机和微型计算机,这种划分标准

并不是绝对的,把一台计算机划分在哪一类中,和计算机发展的进程密

切相关,例如,现在的一台微型计算机的功能和性能,可能比40年前

的大型计算机的功能还要强大,这是计算机发展进步的重要成果和具体

表现。

计算机另外一种分类办法是Flynn分类法,在1966年,M.J.Flynn

提出如下定义:

指令流(instructionstream)------机器执行的指令序列。

数据流(datastream)——由指令流调用的数据序列,包括输入数据

和中间色数据。

多倍性(multiplicity)——在系统中最受限制的元件上同时处于同一

执行阶段的指令或数据的最大可能个数。

他按照指令流和数据流的不同的组织方式,把计算机的系统结构分为以

下4类:

(1)单指令流单数据流SISD(SingleInstructionstreamSingleData

stream);

(2)单指令流多数据流SIMD(SingleInstructionstreamMultiple

Datastream);

(3)多指令流单数据流MISD(MultipleInstructionstreamSingle

Datastream);

(4)多指令流多数据流MIMD(MultipleInstructionstream

MultipleDatastream)e

上面的第1种是传统的指令顺序执行的处理机系统,第2种以阵列

处理机或并行处理机为代表,第4种属于多处理机系统。对第3种有不

同的看法,在有的文献中把流水线结构的计算机看作为MISD结构。

计算机的发展进步的另一个方面,表现在其应用领域的扩展和对社会变

革、进步带来的深刻影响。简单列举如下。

1.科学计算:计算机作为计算工具,完成各种复杂的科学计算是它的

一个重要应用方面,在科学研究、工程设计、天气预报、地质与石油勘

探等各个领域发挥着不可或缺的作用。

2.数据处理:计箕机作为数据处理工具,在政府办公,企、事业单位

的管理等领域发挥重要作用。对政府大量的档案和公文收发、保存和检

索,业务信息的处理与办公流程自动化管理,信息分析与科学决策等方

面提供支持。对企业单位的人、财、物,购、销、存等信息的保存与管

理,市场预测和经营决策等方面提供支持。

3.自动控制:计算机作为具有高速和灵活的逻辑处理能力的工具,广

泛用于工业生产、航天发射等过程的实时控制,包括用于产品的辅助设

计(和辅助制造(

CAD)CAM)e

4.人工智能:计算机作为具有高速和灵活的逻辑处理和推理能力的工

具,在人工智能领域,完成诸如数学定理证明,自然语言理解,知识表

示和挖掘,密码处理和破译,智能机器人研制和应用,计算机翻译等需

要有一定逻辑推理的领域发挥决定性的作用。

5.网络应用:随着计算机网络的出现和发展,计算机已经成为在宽广

的范围内传播信息和实现人员沟通的重要工具,出现了电子政府,电子

商务,网络教育,远程诊断,网上信息检索等多种应用,极大地改变了

人类的生活环境和交流方式。

1.二进制码

只使用〃0〃和〃1〃两个基本符号,在数值数据中选用〃逢二进一〃的

进位规则,这是二进制码的基本特点。计算机内部普遍使用二进制码来

表示各种数据,这是因为:

①很容易找到表示和区分二进制码的和〃1〃两个符号的物理器

件;

②〃0〃和两个符号可以很好地对应逻辑型数据的〃假〃和〃真〃

两个值;

③用二进制码表示的数值型数据的运算规则最简单。

各种不同类型的数据,包括数值、逻辑值、文本、图像、声音和视频等

多种信息,在计算机系统内部都必须采用二进制代码的和〃1〃来

表示。对于数值类型的数据,在日常生活中通常使用带正、负号的十进

制数来表示,如123.456、-789等,这就势必遇到和计算机内部选用

的二进制数或采用二进制编码的十进制数(BinaryCodedDecimal

Number,简称BCD码)之间的数制转换问题。

2.数制与进位计数法

在采用进位计数的数字系统中,如果只用r个基本符号(例如0,12…

r-1)、通过排列起来的符号串表示数值,则称其为基r数制(Radix-r

NumberSystem),r称为数制的基数(Radix)。假定用m+k个自左向

右排列的符号Di(i是位序号,-k<i<m-l;Di表示符号串中第i位上

的记数符号,属于0到r-1中的一个)表示数值N,则有:

N=Dm-1Dm-2...DIDOD-lD-2…D-k(2.1)

式中的Di()为该数制采用的基本符号,可取值0、L2、…、

r-1,小数点位置隐含在D0与D-1位之间,则Dm-1...DO为N的

整数部分,D-1...D-k为N的小数部分。

如果为第i位上的符号1赋以某个固定的值Wi,则称Wi为第i位的

权(Weight),在选用〃逢r进位"的规则时,位权Wi的值为ri(-

个底为基数、幕是位序号的指数值),则称这种数制为r进位数制

(PositionalRadix-rNumberSystem),简称r进制。第i位的实际值

可写成Dixri,N的实际值为各数据位实际值的累加和,可表示为:

m-1

N=£DM(22)

i=-k

例如,表示十进制数要使用10个基本符号:0,1,2,3,4,5,6,

7,8,9,采用逢10进1规则,例如103.4=1x102+0x101+3x

100+4x10-1。

在计算机中通常还会用到二、八、十六3种进位数制。

在二进制中,计数符号:0,1,基数是2,逢二进一。

在八进制中,计数符号:0,1,…,7,基数是8,逢八进一。

在十六进制中,计数符号:0,1,…,9,A,B,…,F,基数是16,

逢十六进一。分别用A-F分别表示十进制数10,11,12,13,14,

15。

1.十一二进制数的转换

十一二进制数的转换要分为整数与小数两种情况分别转换。

(1)整数的转换:采用除2取余,高位在下,直到商为0时为止的原

则。

例如:35

低位

高位

结果:100011

(2)小数的转换:采用乘2取整,高位在上的原则,位数达到要求或

小数部分为0结束。

例如,把十进制小数0.375转换为二进制数,如下所示:

0.375x2=0.75整数部分为0高位

0.75x2=1.5整数部分为1

0.5x2=1.0整数部分为1低位

所以,0.375=(0.011)2

查看动画演示(十进制转化二进制)

2.--十进制数的转换

二-十进制数的转换:通常采用公式(2.2)对二进制数各位的实际值

累加求和完成。

例如:(10110)2=1x24+0x23+1x22+1x21+0x20=22

(1101.1)2=1x23+1x22+0x21+1x20+1x2-1=13.5

查看动画演示(二进制转化十进制)

3.八一二进制数的转换

因为23=8,故1个八进制位对应3个二进制位,可以把一个八进制数

的整数部分和小数部分的每一位分别转换成3位二进制数。

例如:(103.4)8=(001010011.100)2

(741)8=(111100001)2

4.二一八进制数的转换

因为23=8,故3个二进制位对应1个八进制位,可以从小数点位置分

别向左和向右把每3位二进制数划分为一组,并转换成1位八进制数。

注意:小数部分分组时若低位不足3位时要用0补足,否则会出错。

例如:(10110110.1)2=(266.4)8,而不是(266.1)8

查看动画演示(二进制转化八进制)

5.十六一二进制数的转换

因为24=16,故1个十六进制位对应4个二进制位,可以把一个十六

进制数的整数部分和小数部分的每T立分别转换成4位二进制数。

例如:(123)16=(0001,0010,0011)2

(D2C8)16=(1101,0010,1100,1000)2

6.二一十六进制数的转换

因为24=16,故4个二进制位对应1个十六进制位,可以从小数点位

置分别向左和向右把每4位二进制数划分为一组,并转换成1位十六进

制数。注意:小数部分分组是若低位不足4位要用0补足,否则会出错。

例如:(10110110.11)2=(1011,0110)16=(B6.C)16,而不是

(266.3)16

(100110111)2=(1,0011,0111)8=(137)16

查看动画演示(二进制转化十六进制)

用定点小数引出数值的三种编码(原码、补码和反码)方案是最方便的。

(1)原码表示法

原码表示法是用机器数的最高一位代表符号,其余各位给出数值绝对值

的表示方法。其定义为:

XO<X<1

[X]M=■(2.3)

♦1-X-1<X<O

例如,X=+0.1011,凶原二01011

X=-0.1011,凶原二11011

按定义,当X=-0.1011时,凶原=1-X=1.0000-(-0.1011)=11011,

约定小数点在符号位和数值位之间,可省略,这里的X为数的真值,凶

原为原码表示的机器数,是符号位+|X|O

在原码表示中,零有两种表示形式,即[+0.0]原=00000,[-0.0]原

=10000。

原码表示的优点在于实现乘除运算的规则简单,缺点是实现加减运算很

不方便,要比较参与加减运算两个数的符号和两个数的绝对值的大小,

才能确定运算结果的数值和符号。

(2)反码表示法

反码表示法是用机器数的最高一位代表符号,数值位是对负数值各位取

反的表示方法,其定义为

O<X<1

[X]&=v(2.4)

(22)+X-1<X<OMOD(2-2-0)

例如,X=+0.1011,凶反二01011,X=-0.1011z凶反二10100

在反码表示中,零有两个编码,即[+0.0]反=00000,[-0.0]反=11111

在当前的计算机系统中很少使用反码,在有些书中也称反码为按1取模

的编码。

(3)补码表示法

补码表示法是用机器数的最高一位代表符号,以下各位给出数值按2取

模结果的表示方法,其定义为:

[幻*4X叱XVI(25)

[2+X-l<X<0MOD2

例如,X=+0.1011,凶补=01011,X=-0.1011,凶补=10101

在补码表示中,0有唯一的编码,即[+0.0]补=乂=00000,[-0.0]补

=2+XMOD2=00000,所以定点小数多出一个编码,可表示-1。

例如,Xl=X2=-0.1000厕[XI]补=[X2]补=11000,那么[X+X]补

=11000+11000=110000按2取模后得10000这是-1的补码表示。

补码表示的机器数和它的真值的关系是[X]补=2*符号位+X,由此

又得到X=[X]补-2*符号位,这个结论在讨论补码乘法是会用到。

补码表示非常适合于进行加减法运算,对符号位与数值位同等处理,只

要结果不超出机器能表示的数值范围,将直接得到正确的运算结果,即

符号位与数值位都是正确的补码表示,并且可以用实现加法运算的电路

完成减法运算,用+[-Y]补的办法处理减数即可。

查看动画演示(补码原理)

带符号的整数也可以用原码、补码和反码三种不同的编码方法表示。

可以认为整数是小数点被设置在最低一位数值位的右边,机器数的最高

位仍被用作数的符号位。数值的表示范围,以及整数编码的取模值,都

与表示一个数所用的二进制位数有关。

例如,对于用n+1个二进制位表示的带符号的整数的补码,其数值范

围是-2n4X<2n,是用机器数的最高一位代表符号,以下各位给出数值

按2n+l取模结果的表示方法,其定义为:

X0<X<2n

DOX(2.9)

20*l+X-20<X<0MOD尸】

正数的原码和反码的定义、表示与定点小数部分说明的方法类似,这里

从略。

例如,X=+10101[X]原=[X]补=[X]反=010101

X=-10101[X]J^=110101,凶补=101011,凶反=101010

以上两个数的变形补码分别为0010101和1101011。这里的n均为5。

有些计算机内有专门的十进制运算指令,支持选用十进制数的算术计

算。为此要求采用一种二进制编码的十进制数来表示数据,这种编码被

称为BCD码(BinaryCodedDecimal),使用4位二进制编码来表示

十进制数字0~9,有多种具体实现方案,如表2.3所示。

ft23常用+遵敏敷打・吗

十进瓶依8421码2421日521119格■码余3码

000000000000000000011

100010001000100010100

?00100010001100110101

300110011010100100110

40100010001110M00111

501011011100001111000

60110110010100101loot

701111101110001001010

810001110111011001011

910011111111110001100

按照编码的每一位是否都有固定的权值,表中的编码可分为有权码和无

权码两类。显然,8421码、2421码和5211码为有权码;而格雷码、

余3码的每一位没有确定的权,所以是无权码。

格雷码又称循环码,其编码规则是使任何两个相邻的代码只有一个二进

位的状态不同,在D/A或A/D转换电路中得到很好的运行结果。

用BCD码来表示十进制数字时,1个字节存放2位十进制的数字;符

号位放在最低位数字位之后,一般用C(12)表示正号,用D(13)

表示负号。例如:+258被表示成258cH,占用两个字节,-34被表

示为034DH,也占用两个字节,此处的H指出用的是十六进制数。

查看动画演示(十进制编码)

小数点的位置可以在数据位之间移动的数据称为浮点型数据,与数学中

的实数相对应,与定点数相比,它的表示范围可以更大,还存在一个数

据精度(有效数字位数)的问题。

例如:123.456可用如下多种表示:

12.3456x101

0.123456x103

1.23456x102,只有最后这种表示属于科学计数法计算机

中浮点数据编码的一般形式为:N=(-1)SXMXRE

在计算机中,浮点数通常被表示成如下格

SEM

式:1做脚健做心

其中:S:代表符号位,0代表正,1代表负,是浮点数(即尾数

部分)的符号。M:代表尾数,也就是有效数字,用定点小数表示,

通常用原码表示。

R:指数的底,约定为2,不必表示出来,E:代表阶码,是一个整数,

可正可负,一般用移码表示,用REx尾数M可得到浮点数的绝对值。

合理地选择阶码和尾数的位数m和n的值是十分重要的,以便在总长

度为1+m+n位二进制表示的浮点数中,既保证有足够大的数值范围

(取决于m),又保证有所要求的数值精度(取决于n)。

需要对浮点数的表示和运算做出某些规定,国际上得到普遍应用的是

IEEE-754标准,明确规定了表示浮点数所用的位数和几个字段的分配

关系,规格化表示和规格化操作,隐藏位的使用等方案,如表2.4所示:

浮点数符号位阶码尾数总位数隐裳位

短实数182332使用

长实数1115264使用

临时实数1156480不用

三种浮点数格式

请注意,1位的符号位用于表示浮点数的符号,也可以说是尾数的符号。

32位或64位的尾数用于表示数值,规定用规格化的原码小数表示。

规格化是指非0值的浮点数的位数必须满足的要求,即小

数点后的最高位数字必须为lo在遇到不满足这一规定的情况下,需要

把非规格化的浮点数变成为规格化表示的浮点数,这项操作被称为规格

化操作。使用规格化的浮点数便于浮点数之间的运算与比较,也有利于

提高浮点数的表示精度。

既然尾数的最高位的值一定要为1,在实用中,可以通过把整个尾数左

移一位的办法把最高位的这个1移走,使受尾数位数限制不能被保存的

更低一位上的一个数位得以保存,从而提高了一个二进制位的表示精

度,这项处理方案被称为隐藏位技术,被用于单精度和双精度浮点数的

存储中。临时浮点数中不使用隐藏位技术。

8位或11位的阶码用作为以2为底的一个指数的幕,只能是整数,它

的位数决定了浮点数的表示范围,通常用移码表示,移码由1位符号位

和n位数据位构成。

对于一个n+1位的整数移码的定义是冈移=2n+x其表示范围・2n

<x<2n,例如,8位的移码是27+X,称为移128的方案,移码形式

的机器数比数X在数轴上右移了128O

X=-127,冈移=27+X=128+(-127)=1=(00000001)2,

X=127,冈移=27+X=128+127=255=(11111111)2

请注意,移码只用于表示整数,仅用在浮点数的阶码部分。对同一个X,

其移码数与补码数有简单的对应关系,数值位相同,符号位相反,移码

用0表示负号,1表示正号。

使用移码的优点是:便于比较两个移码数的大小,移码表示的机器数与

数在数轴上的排列关系一致,正数大于负数,用在浮点数的阶码部分时,

有利于加快浮点数的比较的速度,有利于判断浮点数的0。

数据在计算机系统内加工、存取和传送的过程中可能产生错误。为减少

和避免这类错误,一方面是精心尽量提高计算机硬件本身的可靠性;另

一方面是在数据编码上采用带有某种特征能力的编码方法,通过少量的

附加电路,使之能发现某种错误,甚至能准确的确定出错位置,进而提

供自动纠正错的的功能。

数据校验码就是一种常用的带有发现某些错误,甚至带有一定自动改错

能力的数据编码方法。它的实现原理是在合法的数据编码之间,加进一

些不允许出现的(非法的)编码,使合法数据编码出现某些错误时,就

称为非法编码。这样,则可以通过检查编码的合法性来达到发现错误的

目的。合理的设计编码规则,安排合法、非法的编码数量,就可以得到

发现错误的能力,甚至达到自动改正错误的目的。

这里用到的一个码距(最小码距)的概念。

码距是指任意两个合法码之间至少有几个二进制位不相同,仅有一位不

同称其码距为1,例如1000与1001的码距为1,而1011与1000的

码距则为2O

只有当合法码之间的码距d>=2时,校验码才具有检错能力,当码距

d>=3时,校验码才具有纠错能力。

一般说来,合理地增大编码的码距,就能提高发现错误的能力,但表示

一定数量的合法码所使用的二进制位数要变多,增加了电子线路的复杂

性和数据存储、传送的数量。

所谓校验码,又称检错码,是指具有发现某些错误或自动改正错误能力

的一种数据编码方法,用于检查或纠在读写和传送数据的过程中可能出

现的错误。其实现的基本思路是在有效信息代码的基础上,添加一些用

于校验目的的冗余信息来构成一个校验码,因此校验码将由有效信息+

校验位构成,校验位的值是通过对有效信息位执行某种逻辑运算得到。

校验码的校验原理是通过判断代码的合法性来检错的。如图2.2所示。

W

校信

蛤出

蛉e

接收校

谈H

/总

取位

/

原理

校验

图2.2

种。

验码3

环校

、循

验码

明校

、海

验码

偶校

有奇

验码

的校

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论