计算机导论(第2版)(txt+pdf+epub+mobi电子书下载)


发布时间:2020-07-29 08:31:42

点击下载

作者:蔡平,王志强,等

出版社:电子工业出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

计算机导论(第2版)

计算机导论(第2版)试读:

第2版前言

本书是根据教育部高等学校计算机科学与技术教学指导委员会公布的《高等学校计算机科学与技术专业发展战略研究报告暨专业规范(试行)》以及教育部高等学校计算机基础课程教学指导委员会颁布的《高等学校计算机基础教学发展战略研究报告暨计算机基础课程教学基本要求》中有关“计算机导论”和“大学计算机基础”课程教学基本要求编写的。

本书全面介绍了计算机科学与技术学科各方面知识,做到广度优先,广而不细。计算机专业学生通过对本书的学习,对本专业的各方面知识有一个较全面的了解,对今后专业课程的学习做到心中有数。非计算机专业学生通过对本书的学习,可以对计算机专业各方面知识有一个粗浅的了解,并掌握一些常用软件的使用技能,为今后计算机的应用打下良好的基础。

本书在原版的基础上增加了一些新的内容,更新了部分章节,也删减了一些内容,如多媒体技术基础等。

全书共分7章。

第1章简要介绍学习计算机所必须具备的基础知识。

第2章以微型计算机为例,介绍计算机硬件的组成、各部件之间的关系。

第3章讲述计算机软件的基本概念以及操作系统、办公软件、数据结构与算法、程序设计和软件工程。

第4章以Access为例,介绍数据库系统的相关知识,并概括介绍信息系统的概念和应用。

第5章介绍通信的基本概念及通信系统,在此基础上讨论计算机网络基本知识、互联网及其应用。

第6章讲述信息安全的基本概念及相关技术。

第7章介绍计算机学科相关论题,包括计算学科与计算机学科、计算机学科研究内容和知识结构、计算机职业道德等问题。

本书建议讲课用42~54学时,实验用28~36学时。本书配套相关教学资源(含电子教案),读者及教师可以从华信教育资源网(http://www.hxedu.com.cn)下载。

本书内容虽多,但容易组合,可适用于不同专业、不同起点的学生学习。因此,本书既可作为高等学校计算机专业的计算机导论教材,又可作为非计算机专业的大学计算机基础(高起点)教材,也可作为计算机各类社会培训的教材。

为了帮助学生学习本书,作者将编写本实验教材《计算机导论实验指导书》,其中提供了14个实验项目,以便培养学生的动手实践能力以及独立思考能力。

本书第1、2、3、6章由蔡平编写,第4、5章由王志强编写,第7章由李坚强编写。作者在编写本书的过程中参考了许多书刊和文献资料,在此表示感谢。限于作者学识水平,书中不足和错误之处,恳请读者批评指正。

读者反馈:unicode@phei.com.cn,wangzq@szu.edu.cn,cp@szu.edu.cn。

作 者

第1章 计算机基础知识

随着计算机科学技术的飞速发展,计算机在经济与社会发展中的地位日趋重要,已经成为现代人类活动中不可缺少的工具。当前,计算机已渗透到社会的各行各业,掌握计算机基础知识和应用技术已成为科学技术人才必须具备的基本素质,计算机知识和应用能力应成为当代大学生知识结构的重要组成部分。

本章将简要介绍学习计算机必须具备的基础知识,内容包括:计算机的内涵、发展、分类、特点和应用领域,常用数制及其相互转换,计算机中数的表示、字符编码和多媒体信息编码,逻辑代数与逻辑电路基础,图灵机与冯·诺依曼机,计算机结构及工作原理,等等。掌握这些基础知识,将为进一步学习计算机科学技术奠定基础。

1.1 计算机概述

1.1.1 什么是计算机

人们通常所说的计算机是指电子计算机,它是一种能对各种信息进行存储和高速处理的工具或电子机器。

对上述定义要强调两点:

① 不要单纯从字面上理解“计算机”一词,要知道它不仅是个计算工具,还应深刻认识到它是一个信息处理机。有了这样的认识,才可能理解计算机为什么能在现代信息社会中掀起一场新技术革命。

② 计算机虽然称为“机”,但是与其他机器不同。它具有存储功能,能存储程序,不需人工直接干预,按程序的引导自动存取和处理数据,输出人们所期望的信息。这也是“计算机”与“计算器”的本质区别。

计算机是20世纪人类最伟大的科技发明之一。综观历史,人类以往创造的任何工具或机器都是人类体能器官的延伸,用于弥补人类体力劳动的不足。例如,一切交通工具都是人腿的延伸,一切机床或工具都是人手的延伸,望远镜、显微镜和电视是人眼的延伸,电话、手机和卫星通信又是人耳的延伸。而计算机是人类思维器官——大脑的延伸。由于大脑是指挥人体各种器官的中枢,因此计算机的出现极大地提高和扩充了人类脑力劳动的效能,开辟了人类智力解放的新纪元。

1.1.2 计算机发展史

1946年2月,美国宾夕法尼亚大学莫尔学院物理学家莫克利(John W.Mauchly)和工程师埃克特(J.Presper Eckert)领导的科研小组研制了世界上第一台电子计算机ENIAC(Electronic Numerical Integrator And Calculator,电子数值积分计算机)。

从ENAIC诞生到现在已有半个多世纪,计算机获得了突飞猛进的发展。人们依据计算机性能和当时软件和硬件技术(主要根据所使用的电子器件),将计算机的发展阶段分为5个阶段。

1.第一代计算机(1946—1958年)

第一代计算机采用的主要元件是电子管,其主要特点如下:

① 采用电子管代替机械齿轮或电磁继电器作为基本电子元件,但仍然比较笨重,而且产生很多热量,容易损坏。

② 程序可以存储,这使通用计算机成为可能。存储设备最初使用水银延迟线或静电存储管,容量很小,后来采用了磁鼓、磁芯,虽有一定改进,但存储空间仍然有限。

③ 采用二进制代替十进制,即所有数据和指令都用“0”和“1”表示,分别对应于电子器件的“接通”和“断开”。输入、输出设备简单,主要采用穿孔纸或卡片,速度很慢。

④ 程序设计语言为机器语言,几乎没有系统软件,主要用于科学计算。

典型的第一代计算机有ENIAC、EDVAC、UNIVAC-I、IBM 701、IBM 702、IBM 704、IBM 705、IBM 650等。

2.第二代计算机(1959—1964年)

晶体管的发明给计算机技术带来了革命性的变化,第二代计算机采用的主要元件是晶体管,其主要特点如下:

① 采用晶体管代替电子管作为基本电子元件,使计算机结构和性能都发生了飞跃。与电子管相比,晶体管具有体积小、重量轻、发热少、速度快、寿命长等优点。

② 采用磁芯存储器作为主存,使用磁盘和磁带作为辅存,使存储容量增大,可靠性提高,为系统软件的发展创造了条件。

③ 提出了操作系统的概念,开始出现汇编语言,并产生了如COBOL、FORTRAN等语言及批处理系统。

④ 计算机应用领域进一步扩大,除科学计算外,还用于数据处理和实时控制等领域。

典型的第二代计算机有IBM 7040、IBM 7070、IBM 7090、IBM 1401、UNIVAC-LARC、CDC 6600等。

3.第三代计算机(1965—1970年)

20世纪60年代中期,随着半导体工艺的发展,已经能制造出集成电路元件。集成电路可以在几平方毫米的单晶硅片上集成十几个甚至上百个电子元件。计算机开始采用中小规模的集成电路元件,其主要特点如下:

① 采用集成电路取代晶体管作为基本电子元件。与晶体管相比,集成电路体积更小,耗电更省,功能更强,寿命更长。

② 采用半导体存储器,存储容量进一步提高,而体积更小。

③ 操作系统出现,高级语言进一步发展,使计算机功能更强,计算机开始广泛应用于各领域并走向系列化、通用化和标准化。

④ 计算机应用范围扩大到企业管理和辅助设计等领域。

典型的第三代计算机有IBM 360、PDP-Ⅱ和NOVA1200等。

4.第四代计算机(1971年至今)

随着20世纪70年代初集成电路制造技术的飞速发展,大规模集成电路元件的出现,使计算机进入一个新时代,其主要特点如下:

① 采用大规模集成电路和超大规模集成电路作为基本电子元件,这是具有革命性的变革,出现了影响深远的微处理器。

② 第四代计算机是第三代计算机的扩展和延伸,存储容量进一步扩大并引入光盘,输入采用OCR(字符识别)和条形码,输出采用激光打印机。

③ 在体系结构方面进一步发展并行处理、多机系统、分布式计算机系统和计算机网络系统。微型计算机大量进入家庭,产品更新速度加快。

④ 软件配置丰富,软件系统工程化、理论化,程序设计部分自动化。计算机在办公自动化、数据库管理、图像处理、语音识别和专家系统等领域大显身手。

典型的第四代计算机有ILLIAC-Ⅳ、VAX-Ⅱ、IBM PC、APPLE等。

5.第五代计算机

前四代计算机本质的区别在于基本元件的改变,即从电子管、晶体管、集成电路到超大规模集成电路,第五代计算机的创新也可能在基本元件上。有些专家推测有以下三种新概念的计算机可能成为第五代计算机的候选机。

① 生物计算机。生物计算机使用生物芯片,生物芯片是用生物工程技术产生的蛋白质分子制成的。生物芯片存储能力巨大,运算速度比当前的巨型计算机快10万倍,能量消耗则为其10亿分之一。由于蛋白质分子具有自组织、自调节、自修复和再生能力,使得生物计算机具有生物体的一些特点,如自动修复芯片发生的故障、模仿人脑的思维机制。

② 量子计算机。所谓量子计算机,是指利用处于多种状态的原子进行运算的计算机。量子计算机中的最小信息单元是一个量子比特,量子比特不只是开、关两种状态,而是以多种状态同时出现。这种数据结构对使用并行结构计算机来处理信息是非常有利的。量子计算机具有一些特殊的性质,如信息传输可以不需要时间(超距作用)、信息处理所需能量可以接近于零。

③ 光计算机。光计算机利用光子取代电子进行数据运算、传输和存储。在光计算机中,不同波长的光表示不同的数据,可快速完成复杂的计算工作。与电子计算机相比,光计算机具有超高速的运算速度、强大的并行处理能力、大存储量、非常强的抗干扰能力等优点。据推测,未来光计算机的运算速度可能比今天的超级计算机快1000倍以上。

目前,计算机技术的发展趋势是向巨型化、微型化、网络化和智能化等4个方向发展。

巨型化是指具有运算速度高、存储容量大、功能更完善的计算机系统。其运算速度一般在每秒百亿次以上,存储容量超过百万兆字节。巨型机主要用于尖端科技和国防系统的研究和开发,如航空航天、军事工业、气象、人工智能等领域,特别是在复杂的大型科学计算领域,其他机种难以与之抗衡。

微型化得益于大规模和超大规模集成电路的飞速发展。微处理器自1971年问世以来,发展非常迅速,几乎每隔2~3年就会更新换代一次,这也使以微处理器为核心的微型计算机的性能不断提升。现在,除了台式微型机外,还有可随身携带的笔记本计算机,以及可以握在手上的掌上型计算机等。

网络化是指利用通信技术和计算机技术,把分布在不同地点的计算机互连起来,按照网络协议相互通信,以达到所有用户都可共享数据、软件及硬件资源的目的。现在,计算机网络在交通、金融、企业管理、教育、邮电、商业等行业中得到广泛应用。网络技术的意义在于人们在任何地方可以从计算机网络上获得知识,工作及消费的地域得到巨大延伸。

智能化就是要求计算机能模拟人的感觉和思维能力,也是第五代计算机要实现的目标。智能化的研究领域很多,其中最有代表性的领域是机器人和专家系统。目前已研制出的机器人可以代替人从事危险环境的作业,运算速度为每秒约10亿次的“深蓝”计算机在1997年战胜了国际象棋世界冠军卡斯帕罗夫。

1.1.3 计算机的分类

计算机科学技术的发展日新月异,计算机已成为一个庞大的家族。计算机的种类很多,从不同角度对计算机有不同的分类方法。

1.按处理对象分类

按处理对象的方式,计算机可以分为数字计算机、模拟计算机和混合计算机三种。

① 数字计算机(Digital Computer)。数字计算机是处理非连续变化的数据的,其输入、存储、处理和输出的数据都是数字量,这些数据在时间上是离散的,非数字量的数据(如字符、声音、图像等)必须经过编码后方可处理。数字计算机基本运算部件是数字逻辑电路,其运算精度高、存储量大、通用性强,能胜任科学计算、数据处理、过程控制、智能模拟等方面的工作。

数字计算机还具有三大优点:一是它以数字化形式表示字符、声音、图形等各种信息,而数字形式便于利用各种存储器加以存储,可以做到很大的存储容量;二是它有较大的数值范围,即较高的精度;三是它除了能进行数值计算外还能进行逻辑处理,赋予计算机以思维判断能力。因此,当前数字计算机已成为信息处理装置的主流,除非特别声明,以后所说的计算机一律是指数字电子计算机。

② 模拟计算机(Analog Computer)。模拟计算机是处理连续变化的数据的,其输入、存储、处理和输出的数据都是模拟量(如电压、电流等),这些数据在时间上是连续的。模拟计算机的基本运算部件是由运算放大器构成的微分器、积分器、通用函数运算器等运算电路,其解题速度极快,但精度不高,数据不易存储,通用性差,一般用于解微分方程或自动控制系统设计中的参数模拟。

③ 混合计算机(Hybrid Computer),是综合了上述两种计算机的长处设计出来的,既能处理数字量,又能处理模拟量。但是这种计算机结构复杂,设计困难。

2.按用途分类

按计算机的用途,计算机可以分为通用计算机和专用计算机两种。

① 通用计算机(General Purpose Computer):为能解决各种问题、具有较强的通用性而设计的计算机。通用计算机具有一定的运算速度,有一定的存储容量,带有通用的外部设备,配备各种系统软件和应用软件。一般的数字电子计算机多属于通用计算机。

② 专用计算机(Special Purpose Computer):为解决一个或一类特定问题而设计的计算机。其硬件和软件的配置依据解决特定问题的需要而定,并不求全。专用机功能单一,配有解决特定问题的固定程序,能高速、可靠地解决特定问题。在过程控制中一般使用专用计算机。

3.按规模和处理能力分类

计算机的规模和处理能力主要是指其字长、运算速度、存储容量、外部设备配置及软件配置等。美国电气和电子工程师学会(IEEE)根据计算机的性能及发展趋势,曾将计算机分为巨型计算机、小巨型计算机、大型计算机、小型计算机、工作站和个人计算机六种。

① 巨型计算机(Super Computer):又称为超级计算机,是所有计算机类型中价格最贵、功能最强的一种计算机,其浮点运算速度已达每秒万亿次。这种计算机主要用于复杂、尖端的科学计算及军事等专用领域。例如,我国国防科技大学在1983年、1992年、1997年和2000年分别研制的银河Ⅰ(亿次)、银河Ⅱ(十亿次)、银河Ⅲ(百亿次)和银河Ⅳ(万亿次)等系列巨型计算机。

② 小巨型计算机(Minisupers Computer):20世纪80年代出现的新机种,因巨型计算机价格十分昂贵,在力求保持或略微降低巨型计算机性能的条件下开发出小巨型计算机,使其价格大幅降低,在技术上采用高性能的微处理器组成并行多处理器系统,使巨型计算机小型化。

③ 大型计算机(Mainframe):国外习惯上将之称为主机,相当于国内常说的大型机和中型机。近年来,大型计算机采用了多处理、并行处理等技术,其内存一般为1GB以上,运行速度可达300~750MIPC(每秒执行3亿至7.5亿条指令)。大型计算机具有很强的管理和处理数据的能力,一般在大企业、银行和科研院所等单位使用。

④ 小型计算机(Minicomputer):结构简单,价格较低,使用和维护方便,备受中小企业欢迎。20世纪70年代出现小型计算机热,到20世纪80年代其市场份额已超过了大型计算机。那时在我国许多科研院所都配置了16位的PDP-11及32位的VAX-11系列。国产的有DJS-2000及生产批量较大的太极2000等。

⑤ 工作站(Workstation):一种高档微型计算机系统,具有较高的运算速率,具有大型计算机或小型计算机的多任务、多用户能力,且兼有微型计算机的操作便利和良好的人机界面。其最突出的特点是具有很强的图形交互能力,因此在工程领域特别是计算机辅助设计领域得到迅速应用。典型产品有美国Sun系列工作站。

⑥ 个人计算机(Personal Computer,PC):国内多数人称其为微型计算机。这是20世纪70年代出现的新机种,以其设计先进(总是率先采用高性能微处理器)、软件丰富、功能齐全、价格便宜等优势而拥有广大的用户,因而大大推动了计算机的普及应用。现在除了台式计算机外,还有便携式计算机,如笔记本电脑和掌上型计算机。

1.1.4 计算机的特点

各种类型的计算机虽然在处理对象、用途、规模和性能等方面有所不同,但都具有以下几个主要特点。(1)运算速度快

由于计算机采用高速电子器件组成,因此能以极快的速率工作。现在的高性能计算机每秒能进行数万亿次运算,不仅大大提高了工作效率,还使许多过去无法处理的问题都能得以解决。例如,气象预报需要分析大量的资料,若人工计算需十天半月才能完成,会失去预报的意义,现在使用计算机进行运算,十几分钟就能完成一个地区数天气象预报资料的计算工作。(2)计算精度高

由于计算机采用二进制表示数据,因此其精度主要取决于表示数据的位数,即机器字长。字长越长,其精度越高。计算机的字长从8位、16位增加到32位、64位,甚至更长,从而使计算结果具有很高的精确度。再加上运算技巧,数值计算越来越精确。例如,过去对圆周率的计算,数学家们经过艰苦的努力,只能算到小数点后500位,1981年,一位日本人利用计算机很快计算到小数点后200万位。(3)存储能力强

计算机具有完善的存储系统,可以存储和“记忆”大量信息。例如,一台计算机能将一个中等规模的图书馆的全部图书资料信息存储起来,而且不会“忘却”。当人们需要时,又能准确无误地取出来,使从浩如烟海的文献中查找所需要的信息成为一件容易的事情。存储系统可根据需要无限扩充,从而满足了社会信息量急剧增长的需要。(4)具有逻辑判断能力

计算机不仅能进行算术运算和逻辑运算,而且能对字符进行判断或比较,进行逻辑推理和定理证明。例如,数学中著名的四色问题,是指任意复杂的地图,要使相邻区域的颜色不同,最多只用4种颜色。100多年来不少数学家一直想去证明它或者推翻它,却一直没有结果。1976年,美国数学家使用计算机进行了非常复杂的逻辑推理,用了1200小时解决了这一世界难题。(5)具有自动执行能力

计算机是个自动化电子装置,在工作过程中不需人工干预,能自动执行存放在存储器中的程序。程序是通过仔细规划事先安排好的操作步骤,一旦将程序输入计算机并发出运行命令后,它便不知疲劳地干起来。利用这个特点,让计算机去完成那些枯燥乏味的重复性劳动,也可让计算机控制机器深入到人类身体难以胜任的、有毒的、有害的作业场所。

与计算机相比,人类思维不但速率慢、容易发生错误,而且容易疲倦、节奏紊乱,长久记忆容易模糊或遗忘等。计算机正好相反,其工作速率快、不易发生错误,处理数据节奏均匀,记忆永远不会淡漠,而且不知疲倦。尽管如此,人类完全不必自馁。因为人类思维的另一方面,即可以类推、联想、创造能力和学习能力等,为现代计算机望尘莫及。人脑和计算机各有所长,单纯的大量计算或定型处理应尽量让计算机去做,人们可以抽身去从事更高级、更复杂的创造性工作。

1.1.5 计算机的应用领域

计算机在科学技术、国民经济、社会生活等方面都得到了广泛的应用,这些应用正在改变着传统的工作、学习和生活方式,推动着社会的发展与进步。根据计算机应用的性质,大体上可以归纳为以下6方面。(1)科学计算

科学计算又称为数值计算,是利用计算机来完成科学研究和工程技术中提出的数学问题的计算。在科学研究和工程技术中,通常要将实际问题归结为某一数学模型,这些数学模型内容复杂,计算量大,要求精度高,只有以计算机为工具来计算才能快速地取得满意的结果。计算机甚至可以对不同的计算方案进行比较,以便选出最佳方案。例如,火箭运行轨迹、高能物理及地质勘探等许多尖端科技的计算等。计算机仿真则是在此基础上发展起来的应用,可以用计算机仿真原子弹的爆炸,避免过多的实弹试验。(2)数据处理

数据处理又称为信息处理,是利用计算机对数据进行输入、存储、整理、分类、统计、制表、检索和传播等一系列活动的统称。据统计,80%以上的计算机主要用于数据处理,这类工作量大面宽,决定了计算机应用的主流。

数据处理与科学计算不同,数据处理涉及的数据量大,但计算方法较简单;而科学计算的数据量不大,但计算过程较复杂。在当今的信息时代,要对海量的数据进行管理和有效利用,必须借助计算机这个重要工具,特别是利用网络计算机实现信息资源的共享,如办公自动化系统、信息决策支持系统和股市行情分析等。(3)过程控制

过程控制又称为实时控制,是利用计算机实时采集检测数据,按最优值,迅速对控制对象进行自动调节或自动控制。采用计算机进行过程控制,不仅可以大大提高控制的自动化水平,而且可以提高控制的实时性和准确性,从而改善劳动条件、提高产品质量及合格率。因此,计算机过程控制已在机械、冶金、石油、化工、纺织、水电、航天等领域得到广泛应用。例如,在汽车工业方面,利用计算机控制机床或整个装配流水线,不仅可以实现精度要求高、形状复杂的零件加工自动化,而且可以使整个车间或工厂实现自动化。(4)计算机辅助技术

计算机辅助技术主要包括计算机辅助设计、计算机辅助制造和计算机辅助教育等。

① 计算机辅助设计(Computer Aided Design,CAD):利用计算机系统辅助设计人员进行工程或产品设计,以实现最佳设计效果的一种技术,已广泛地应用于飞机、汽车、机械、电子、建筑和轻工等领域。例如,在建筑设计过程中,可以利用CAD技术进行力学计算、结构计算、绘制建筑图纸等,这样不但提高了设计速度,而且可以大大提高设计质量。

② 计算机辅助制造(Computer Aided Manufacturing,CAM):利用计算机系统进行生产设备的管理、控制和操作的过程。例如,在产品的制造过程中用计算机控制机器的运行,处理生产过程中所需的数据,控制和处理材料的流动,以及对产品进行检测等。CAM技术可以提高产品质量,降低成本,缩短生产周期,提高生产率和改善劳动条件。

将CAD和CAM技术集成,实现设计生产自动化,这种技术被称为计算机集成制造系统(CIMS)。

③ 计算机辅助教育(Computer Aided Instruction,CAI):利用计算机系统,使用课件进行教学。课件可以用多媒体创作工具或高级语言来开发制作,能引导学生循序渐进地学习,使学生轻松自如地从课件中学到所需要的知识。CAI的主要特色是交互教育、个别指导和因人施教。(5)人工智能

人工智能是用计算机模拟或部分模拟人的智能活动,诸如感知、判断、理解、学习、问题求解和图像识别等。目前,人工智能的研究已取得不少成果,有些已开始走向实用阶段。例如,应用在医疗工作中的医学专家系统能模拟高水平的医生分析病情,为病人开出药方,提供病情咨询等;在机械制造业中,采用智能机器人,可以完成各种复杂加工,承担有害作业。(6)通信网络

计算机技术与现代通信技术的结合构成了计算机网络。计算机网络的建立,不仅解决了一个单位、一个地区、一个国家中计算机与计算机之间的通信及各种软件、硬件资源的共享,也大大促进了国家之间的文字、图像、视频和声音等数据的传输和处理。

目前,网络电话、网络实时交谈和E-mail已成为人们重要的通信手段。视频点播、网络游戏、网上教学、网上书店、网上购物、网上订票、网上医院、网上电视直播、网上证券交易及电子商务正逐渐走进普通百姓的生活、学习和工作当中。可见,通信网络提供的服务非常广泛。

1.2 计算机运算基础

人们习惯于采用十进制计数。但是由于技术上的原因,计算机内部一律采用二进制表示数据和信息。而在编程中又经常使用十进制,有时为了方便还使用八进制或十六进制。因此,弄清不同进制及其相互转换是重要的。

人们使用计算机是通过键盘与计算机交互,从键盘上输入的各种操作命令及原始数据都是以字符形式出现的,然而计算机只能认识二进制数,这就需要对字符进行编码。人机交互时,输入的各种字符由机器自动转换,以二进制编码形式存入计算机。

1.2.1 数制及其转换

1.数制的概念

什么是数制?数制是用一组固定的数字和一套统一的规则来表示数目的方法。

按照进位方式计数的数制叫做进位计数制。由于日常生活中大都采用十进制计数,因此人们对十进制最习惯。但是其他进制仍有应用领域。例如,十二进制作为商业包装计量单位“一打”的计数方法,十六进制作为中药或金器等采用的计量单位,而计算机中采用的是二进制。

无论使用何种进制,它们都包括两个要素:基数和位权。

① 基数:指各种进位计数制中允许选用基本数码的个数。例如,十进制的数码有0,1,2,3,4,5,6,7,8和9,因此十进制的基数为10。

② 位权:每个数码所表示的数值等于该数码乘以一个与数码所在位置相关的常数,这个常数叫做位权。位权的大小是以基数为底、2数码所在位置的序号为指数的整数次幂。例如,128.7=1×10+2×10-110+8×10+7×10。

2.常用的数制(1)十进制(Decimal Notation)

十进制是用0~9这10个数码表示数值,采用“逢十进一”计数原则的进位计数制。因此十进制数的基数为10,十进制数中处于不同位置上的数字代表不同的值,与它对应的位权有关,十进制数的位i权为10,其中i代表数字在十进制数中的序号。例如,十进制数123.89可表示为

一般地,任意一个n位整数和m位小数的十进制数D可表示为

其中,m,n为正整数。(2)二进制(Binary Notation)

与十进制相似,二进制是用0和1表示数值,采用“逢二进一”计数原则的进位计数制。因此,二进制数的基数为2,二进制数中处于不同位置上的数字代表不同的值,每个数字的位权由2的幂次决定,i即2,其中i为数字在二进制数中的序号。

例如,二进制数11011.101可表示为

一般地,任意一个n位整数和m位小数的二进制数B可表示为

其中,m、n为正整数。(3)八进制(Octal Notation)

八进制是用0~7这8个数码表示数值,采用“逢八进一”计数原则的进位计数制。因此八进制数的基数为8,八进制数中处于不同位置上的数字代表不同的值,每一个数字的位权由8的幂次决定,即i8,其中i为数字在八进制数中的序号。例如,八进制数437.25可表示为

一般地,任意一个n位整数和m位小数的八进制数Q可表示为

其中,m,n为正整数。(4)十六进制(Hexdecimal Notation)

十六进制是用0~9和A~F这16个数码表示数值,采用“逢十六进一”计数原则的进位计数制。因此十六进制数的基数为16。十六进制数中处于不同位置上的数字代表不同的值,每位数字的位权由i16的幂次决定,即16,其中i为数字在十六进制数中的序号。例如,十六进制数6BA.E7可表示为

一般地,任意一个n位整数和m位小数的十六进制数H可表示为

其中,m,n为正整数。(5)几种进制数间的对应关系

各种进位计数制的基本原理是相同的,只是在日常生活中不经常用到二进制、八进制和十六进制,对它们不十分熟悉而已。但它们之间存在内在的联系,可以相互转换。表1-1列出了几种进制数间的对应关系。表1-1 各种进制数间的对应关系

3.不同进制数的相互转换(1)二进制数与十进制数的互换

计算机内部使用二进制数,但人们习惯于十进制,要把它输入到计算机中参加运算,必须将其转换成二进制数。计算机运算的结果输出时,又要把二进制数转换为十进制数来显示或打印。这种不同进制之间的相互转换过程在计算机内部频繁地进行着。当然,有专门的程序自动完成这些转换工作,但我们仍有必要了解数制转换的基本步骤。

① 二进制数转换成十进制数。这种转换比较简便,只要将待转换的二进制数按权展开,然后相加即可得到相应的十进制数。例如:

② 十进制数转换成二进制数。十进制数有整数和小数两部分,转换时整数部分采用除2取余法,小数部分采用乘2取整法,然后通过小数点将转换后的二进制数连接起来即可。例如,将(105.625)转换成二进制数:10

弄清二进制数与十进制数的相互转换方法,可以将其推广到其他进制与十进制数的相互转换,不同之处是应该考虑具体进制的基数,转换算法则是完全一样的。(2)二进制数与八进制数的互换3

因为二进制数基数是2,八进制数基数是8。又由于2=8,18=8,可见3位二进制数对应于1位八进制数,所以二进制与八进制的互换是十分简便的。

① 二进制数转换成八进制数。二进制数转换为八进制数可概括为“3位并1位”,即以小数点为基准,整数部分从右到左,每3位一组,最高位不足3位时,添0补足3位;小数部分从左到右,每3位一组,最低有效位不足3位时,添0补足3位。然后将各组的3位二进制数按权展开后相加,得到1位八进制数,再按权的顺序连接起来即得到相应的八进制数。例如,将(1011100.00111)转换为八进制数:2

② 八进制数转换成二进制数。八进制数转换成二进制数可概括为“1位拆3位”,即把1位八进制数写成对应的3位二进制数,然后按权的顺序连接即可得到相应的二进制数。例如,将(163.54)转换8成二进制数:(3)二进制数与十六进制数的互换

二进制数与十六进制数之间也存在着二进制数与八进制数之间相41似的关系。由于2=16,16=16,即4位二进制数对应于1位十六进制数。

① 二进制数转换成十六进制数。二进制数转换为十六进制数可概括为“4位并1位”,即以小数点为基准,整数部分从右到左,小数部分从左至右,每4位一组,不足4位添0补足。然后将每组的4位二进制数按权展开后相加,得到1位十六进制数,再按权的顺序连接起来即得到相应的十六进制数。例如,将(1011100.00111)转换为十2六进制数:

② 十六进制数转换成二进制数。十六进制数转换成二进制数可概括为“1位拆4位”,即把1位十六进制数写成对应的4位二进制数,然后按权的顺序连接即可得到相应的二进制数。例如,将(16E.5F)转换成二进制数:16

在程序设计中,为了区分不同进制数,常在数字后加一个英文字母作后缀以示区别。

十进制数:在数字后加字母D或不加字母,如105D或105。

二进制数:在数字后面加字母B,如101B。

八进制数:在数字后面加字母Q,如163Q。

十六进制数:在数字后加字母H,如16EH。

4.计算机为什么采用二进制

二进制并不符合人们的习惯,但是计算机内部仍采用二进制表示数值和信息,其主要原因有以下几点:

① 电路简单。计算机是由逻辑电路组成的,而逻辑电路通常只有两个状态。例如,晶体管的导通与截止、开关的接通与断开、电平的高与低等,这两种状态正好用来表示二进制数的两个数码0和1。

② 可靠性高。两种状态表示二进制两个数码,数字传输和处理不容易出错。因此,电路工作可靠,抗干扰能力强。

③ 运算简单。二进制运算法则简单,如加法法则只有3个,乘法法则也只有3个,从而简化了计算机内部器件的线路,提高了机器的运算速度。

④ 逻辑性强。计算机工作原理是建立在逻辑运算基础上的,逻辑代数是逻辑运算的理论依据。二进制只有两个数码,正好代表逻辑代数中的“真”和“假”。

1.2.2 存储单位及地址

数据必须首先在计算机内表示,然后才能被计算机处理。计算机表示数据的部件主要是存储设备,而存储数据的具体单位是存储单元。(1)位

位(bit,b)是计算机存储数据的最小单位。一个二进制位只能1表示2=2种状态,要想表示更多的数据,就得把多个位组合起来作为一个整体,每增加1位,所能表示的信息量就增加1倍。例如,7ASCII码用7位二进制组合编码,能表示2=128个不同字符。(2)字节

字节(byte,B)是数据处理的基本单位,即以字节为单位存储和解释信息。字节是由相邻8位组成的信息存储单位,即1B=8bit。通常,1字节可存放一个ASCII码,2字节可存放一个汉字国标码,整数用2字节组织存储,单精度实数用4字节组织成浮点形式,而双精度实数利用8字节组织成浮点形式,等等。

存储器容量大小以字节数来度量,经常使用三种度量单位:KB、MB和GB。

注意:位和字节是有区别的。位是计算机中最小数据单位,字节是计算机中基本信息单位。

在计算机中,1字节被称为存储器的一个存储单元。一个存储单元可以存储一定的内容,如数字、字符等。为了便于找到每个存储单元,计算机对其进行了连续编号,这种编号就是地址。这样就可以按地址来存取存储单元中的内容,如图1-1所示。图1-1 存储体结构(3)字

计算机处理数据时,CPU通过数据总线一次存取、加工和传送的数据长度称为字(word,W)。一个字通常由1字节和若干字节组成。由于字长是计算机一次所能处理的实际位数长度,所以字长是衡量计算机性能的一个重要标志,字长越长,性能越强。

不同的计算机字长是不相同的,常用的字长有8位、16位、32位、64位不等。

计算机处理的数据分为数值型和非数值型两种。数值型数据是指数学中的代数值,具有量的含义,且有正负之分、整数和小数之分;非数值型数据是指输入到计算机中的所有信息,没有量的含义,如英文字母、数字符号0~9、汉字、声音、图像和视频等。由于计算机采用二进制,也就是说,计算机只识别0和1,所以输入到计算机中任何数值型和非数值型数据都必须转换为二进制数码。

1.2.3 数值型数据表示

1.机器数与真值

在计算机中,数值型数据是用二进制数来表示的。数值型数据有正、负之分,通常人们在数字前面冠以“+”或“-”来表示数的正负,在计算机内部“+”和“-”也需要数码化,用1位二进制表示。一般规定:用“0”表示“+”,用“1”表示“-”。因此,数值型数据的最高位用来表示数值的正负,这一位称为符号位。在计算机内部,数字和正负号都用二进制数码表示,两者结合在一起构成数值型数据的机内表示形式。

把这种连同数字和符号组合在一起的二进制数称为机器数,由机器数所表示的实际值称为真值。例如:

又如,要求十进制数+105和-105的机器数,十进制数105的二进制数是1101001,则

在计算机中,机器数可以用不同的码制来表示。常用的码制有原码表示法、反码表示法和补码表示法。为了简单起见,下面只以整数为例介绍原码、反码和补码。

2.原码、反码和补码(1)原码

原码表示法规定:用符号位和数值位两部分表示一个带符号数,设字长为 n 位,最高位为符号位,正数的符号位用0表示,负数的符号位用1表示,其余n-1位数值部分用二进制形式表示。数X的原码记为[X]。原

例如,若机器字长为8位,二进制数+1011101和-1011101的原码分别表示为01011101和11011101。

在原码表示中,零有两种表示形式,即[+0]=00000000,[-0]原原=10000000。

原码所能表示的数的范围与二进制数的位数(即机器字长)有关。如果用8位二进制数表示时,最高位为符号位,整数原码表示的范围为-127~+127,即最大数是01111111,最小数是11111111。同理,用16位二进制数表示整数原码时的范围为-32767~+32767。【例1-1】 假设字长为8,求十进制数+78和-78的原码。

因为(78)=(1001110),所以[+78]=01001110,[-78]102原原=11001110。

用原码表示一个数,简单且直观,与真值之间转换方便。这种表示法对乘法和除法的符号判别是很方便的,在做乘法或除法时,把数的符号位按位相加后,就得到结果的符号位。但这种表示法对加、减法来说运算比较复杂,不能用它直接对两个同号数相减或两个异号数相加。

例如,将十进制数“35”与“-65”的两个原码直接相加,因为[+35]=00100011,[-65]=11000001,所以原原00100011+11000001=11100100,其结果符号位为“1”表示是负数,真值为“1100100”,即等于十进制数“-100”,这显然是错误的。

又如,将十进制数“35”与“65”的两个原码直接相减。因为[+35]=00100011,[+65]=01000001,所以原原00100011-01000001=11100010,其结果符号位为“1”表示是负数,真值为“1100010”,即等于十进制数“-98”,这显然也是不对的。

因此,为了计算机中方便进行加减法而引入了反码和补码。(2)反码

反码表示法规定:正数的反码与原码相同,负数的反码是对该数的原码除符号位外各位取反,即0变1,1变0。数X的反码记为[X]。反例如,若机器字长为8位,二进制数+1011101和-1011101的反码分别表示为01011101和10100010。

零的反码表示有两种,即

可以验证,任何一个数的反码的反码即是原码本身。通常反码作为求补过程的中间形式。(3)补码

补码表示法规定:正数的补码与原码相同,负数的补码是对该数的原码除符号位外各位取反,最末位加1,即求反加1。数X的补码记为[X]。例如,若机器字长为8位,二进制数+1011101和-1011101的补补码分别表示为01011101和10100011。

零的补码表示是唯一的,即

补码所能表示的数的范围也与二进制数的位数(即机器字长)有关。如果用8位二进制数表示时,最高位为符号位,整数补码表示的范围为-128~+127。用16位二进制数表示整数补码时的范围为-32768~+32767。【例1-2】 假设字长为8,求十进制数+78和-78的补码。

因为(78)=(1001110) ,所以[+78]=01001110,[+78]102原补=01001110,[-78]=11001110,[-78]=10110010。原补

可以验证,任何一个数的补码的补码即是原码本身。

引入补码后,加减法运算都可以用加法来实现,也就是说,减法变为加法来运算,并且两数“和”的补码等于两数的补码之“和”。即【例1-3】 利用补码计算十进制数“35”与“65”之差,即35-65=?

因为[+35]=00100011,[+35]=00100011,[-65]=11000001,原补原[-65]=10111111,所以补

其结果11100010为补码,对它再进行一次求补运算,就得到结果的原码表示形式,即[11100010]=10011110,则[10011110]补原=-0011110=(-30),所以结果正确。10

由此可以看出,在计算机中加减法运算都可以统一化成补码的加法运算,其符号位也参与运算,这是十分方便的。目前,计算机中的加减运算基本上采用补码进行运算。

3.定点数与浮点数

在计算机中,参与运算的数据会既有整数又有小数。当处理的数值含有小数部分时,计算机并不采用某个二进制位来表示小数点,而是用隐含规定小数点的位置来表示。按照小数点的位置是否固定,一般分为定点数和浮点数。(1)定点数

在计算机中,小数点位置固定的数称为定点数。定点数根据小数点隐含固定位置不同,又分为定点小数和定点整数。定点数的运算规则比较简单,但不适宜对数值范围变化大的数据进行运算。

① 定点小数:指小数点隐含固定在最高数值位的左边,符号位右边,参与运算的数是纯小数,其绝对值小于1。定点小数在计算机中表示的格式如图1-2所示。

② 定点整数:指小数点隐含固定在整个数值的最右端,符号位右边所有的位数表示的是一个纯整数。定点整数在计算机中表示的格式如图1-3所示。图1-2 定点小数的格式图1-3 定点整数的格式

无论是定点小数或定点整数,由于小数点都固定在一个位置,所以计算机在运算时不必对位,可以直接进行加减运算。实现这种运算方法的电路都比较简单,但表示数的范围受到限制。为了防止“溢出”,需要选择合适的比例因子,对运算前后的数据按比例因子进行折算,使用起来不方便。为了解决上述问题,可以采用浮点表示法。(2)浮点数

浮点数是指小数点位置不固定,根据需要而浮动的数,既有整数部分又有小数部分。定点数所能表示的范围非常有限,在许多场合下不够用,浮点数表示法可以扩大数据的表示范围。

在计算机中,通常把浮点数分成阶码和尾数两部分来表示。阶码一般用补码定点整数表示,用于表示该数的小数点位置。尾数一般用补码或原码定点小数表示,用于表示数据的有效位数。

浮点数的格式多种多样。在设计时,阶码和尾数占用的位数可以灵活设定。由于阶码确定数的表示范围,而尾数确定数的精度,所以当字长一定时,分配给阶码的位数越多,则表示数的范围越大,但分配给尾数的位数将减少,从而降低了表示数的精度。反之,分配阶码的位数减少,则数的表示范围将变小,但尾数的位数增加,从而使精度得到提高。

某计算机字长为32位,用4字节表示浮点数,阶码部分为8位补码定点整数,尾数部分为24位补码定点小数,如图1-4所示。图1-4 浮点数格式

为了提高精度,通常其尾数的最高位必须是非零的有效位,这称为浮点数的规格化形式。由于其阶码为8位,由阶码最大值为772-1=(127),阶码最小值为-2=(-128),这样所表示数的范1010127-23127围为-1×2~(1-2)×2。

由此可见,浮点数的表示范围要比定点数大得多,但也不是无限的。当计算机中参与运算的数超出了浮点数的表示范围时称为溢出。如果一个数的阶码大于计算机所能表示的最大阶码,则称为上溢;若小于最小阶码,则称为下溢。上溢时,计算机将停止运算,转溢出中断处理程序进行溢出处理。下溢时,计算机将该数作为机器零来处理,即把该浮点数的阶码和尾数全置成零,但仍能进行运算。

1.2.4 字符型数据编码

人们使用计算机,基本手段是通过键盘与计算机打交道。从键盘上输入的命令和数据实际表现为一个个英文字母、标点符号和数字,都是非数值数据。计算机只能存储二进制,这就需要用二进制数0和1对各种字符进行编码。例如,在键盘上输入英文字母A,存入计算机是A的编码01000001,它已不再代表数值量,而是一个字符信息。下面介绍两种重要编码:ASCII码和汉字编码。

1.ASCII码

西文是由拉丁字母、数字、标点符号及一些特殊符号组成的,它们统称为字符,所有字符的集合叫做字符集。字符集中每个字符各有一个二进制表示的编码,它们互相区别,构成了该字符集的编码表。

字符集有多种,每种字符集的编码方法也多种多样。目前计算机中使用得最广泛的西文字符集及其编码是ASCII码,即美国标准信息交换代码(American Standard Code for Information Interchange),它已被国际标准化组织批准为国际标准ISO-646,适用于所有拉丁文字字母,已在全世界通用。我国相应的国家标准是GB 1988,称为信息处理交换用的7位编码字符集标准。

ASCII码用七位二进制表示一个字符,由于从0000000到1111111共有128种编码,可用来表示128个不同的字符,其中包括10个数字、26个小写字母、26个大写字母、运算符号、标点符号以及控制符号等。ASCII字符编码表如表1-2所示。表1-2 7位ASCII码表

在表1-2中,第000列和第001列共32个字符,称为控制字符,它们在传输、打印或显示输出时起控制作用。第010列到第111列(共6列)共94个字符,称为图形字符。这些字符有确定的结构形状,可在显示器或打印机等输出设备上输出。它们在计算机键盘上能找到相应的键,按键后就可将对应字符的二进制编码送入计算机中。此外,在图形字符集的首尾还有2个字符也可归入控制字符,即SP(空格字符)和DEL(删除字符)。

虽然ASCII码是7位编码,但由于字节是计算机的基本处理单元,故一般仍以一字节来存放一个ASCII码字符。每个字节中多余出来的一位(最高位),在计算机内部一般保持为0或在编码传输中用作奇偶校验位,如图1-5所示。

2.汉字编码

计算机在处理汉字信息时,要将其转化为二进制代码,这就需要对汉字进行编码。由于汉字比西文字符量多且复杂,因此给计算机处理带来许多困难。汉字处理技术首先要解决的是汉字输入、输出及计算机内部的编码问题。根据汉字处理过程中的不同要求,编码形式有多种,主要分为汉字输入码、汉字交换码、汉字机内码和汉字字型码4类,如图1-6所示。图1-5 字节中的ASCII码图1-6 汉字处理过程(1)汉字输入码

汉字输入码的作用是让用户能直接使用西文键盘输入汉字。好的汉字输入码编码方案应具备的特点是:编码规则简单易学,重码率低,同时击键次数少。事实上,重码率与其易学性是相互牵制的。目前,各种各样的输入法有几十种,但是很难找到既容易掌握又重笔码率低的输入法。例如,五笔字型输入法的重码率很低,但是要掌握五笔字型字根并不是简单的事情。拼音输入法,几乎有一定拼音基础的人都能迅速掌握,但是由于同音字很多,所以重码率很高。

不管何种汉字输入法,它们的编码方案都可以归纳为数字、字音、字形和混合4种。

① 数字编码:按照汉字的排列次序,给每个汉字赋予一组唯一的数字编号,只要通过键盘输入一组数字编码,就可以完成汉字的输入。虽然这个编码不产生重码,但是难以记忆。有代表性的输入法有区位码、电报码等。

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载