大学信息技术基础教程(第二版)(txt+pdf+epub+mobi电子书下载)


发布时间:2020-08-12 14:01:37

点击下载

作者:朱正礼

出版社:东南大学出版社

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

大学信息技术基础教程(第二版)

大学信息技术基础教程(第二版)试读:

内容简介

本书是根据教育部计算机科学与技术教学指导委员会提出的《关于进一步加强高等学校计算机基础教学的意见》的有关要求编写的。

本书分为上下两篇,共13章。上篇讲述信息技术基础理论,分为6章,内容包括计算机与信息技术概述、计算机硬件系统、计算机软件、计算机网络与Internet应用、多媒体技术及应用、数据库技术与信息系统等。下篇是实验指导,分为7章,内容包括Windows XP的基本应用,Word 2003、Excel 2003、PowerPoint 2003、FrontPage 2003、IE浏览器的使用以及Outlook Express邮件管理和多媒体软件的使用。

本书结构合理、内容新颖、实验指导案例丰富,可作为各类高等院校计算机基础课程教材,也可作为各类计算机社会培训班的教材或者计算机初学者的自学参考书。

再版前言

随着社会的发展,新的计算机技术不断涌现,计算机在社会中的应用更加深入广泛,新时期社会对人才的培养提出了更高的要求,迫切需要加强高等院校计算机基础的教学工作。根据教育部高等学校非计算机专业基础课程教学指导分委员会提出的《关于进一步加强高等学校计算机基础教学的意见》的要求,我们组织了一批多年工作在教学一线并且有丰富教学经验的教师,编写了《大学信息技术基础教程》一书。《大学信息技术基础教程》第一版自2008年出版至今的3年中已经加印了2次。为了更新计算机技术,同时也为了适应计算机基础课程教学的需要,我们对《大学信息技术基础教程》第一版进行了修订。修订的内容主要是上篇的信息技术的基本理论部分,加入了新的技术,删除了一些已经过时的技术,同时对部分内容结构进行了调整。

修订后的图书针对信息技术的发展和新时期高等学校学生的特点,由浅入深地讲述信息技术的相关概念、原理和应用,上机实验指导案例丰富。结构安排上做到知识体系全面系统,重点内容讲解透切。使学生通过本课程的学习,不仅掌握较为全面深入的信息技术的基本理论,同时,掌握较为全面的信息技术的实践技能,为今后使用计算机以及学习后续计算机课程打下良好的基础。

参加本书编写的有朱正礼、周宇、沈丽容、蒋安纳、吴东洋、章春芳和徐逸卿,全书由朱正礼主编并统稿,审稿者业宁、夏霖和王一雄。我们在本书第一版编写及修订的过程中参考了大量文献资料,对相关文献的作者,也在此表示衷心感谢。

由于修订时间仓促和编者水平有限,书中有欠妥和不足之处,恳请读者批评指正。编者2011年5月

上篇 信息技术基础理论

1 计算机与信息技术概述

电子计算机(Electronic Computer)又称为计算机(Computer),是一种能够高速、自动地进行信息处理的电子设备。它是20世纪人类最伟大的发明创造之一。在短暂的半个世纪里,计算机技术取得了迅猛的发展。它的应用领域从最初的军事应用和科学计算扩展到目前的各个领域,有力地推动了信息化社会的发展。计算机现已成为信息社会各行各业不可缺少的工具。

1.1 计算机发展概述

1.1.1 计算机的产生和发展

第二次世界大战期间,美国军方为了解决计算大量军用数据的难题,开始研制计算机。世界上第一台电子计算机是由美国爱荷华州立大学的教授约翰·文森特·阿塔纳索夫(John Vincent Atanasoff)和他的研究生克利福特·贝瑞(Clifford Berry)在1937年至1941年间开发的“阿塔纳索夫—贝瑞计算机”(Atanasoff⁃Berry Computer,简称ABC)。1946年2月在美国宾夕法尼亚大学问世的ENIAC(The Electronic Numerical Integrator and Computer,电子数值积分计算机)(如图1.1所示)则是最负盛名的早期计算机之一。ENIAC使用了18000个电子管,耗电150千瓦,占地170平方米,重达30吨。虽然它的功能还比不上今天最普通的一台微型计算机,但在当时它已是运算速度的绝对冠军,并且其运算的精确度和准确度也是史无前例的。一条炮弹的轨迹,20秒钟就能被它算完,比炮弹本身的飞行速度还要快。ENIAC标志着电子计算机的问世,人类从此大步迈进了计算机时代,社会生活从此发生了巨大的变化。图1.1 ENIAC电子计算机

ENIAC诞生后短短的几十年间,计算机的发展突飞猛进。每一次计算机使用的电子器件的更新换代都使它的体积和耗电量大大减小,功能大大增强,应用领域进一步拓宽。人们根据计算机使用的电子器件(如图1.2所示),将其发展过程分成以下几个阶段:

●第一代(1946—1957)是电子管计算机。计算机使用机器语言和汇编语言,运行速度慢,存储量小,主要用于数值计算。

●第二代(1958—1964)是晶体管计算机。计算机使用FORTRAN等高级语言,体积明显缩小,运算速度大大提高,应用范围扩大到数据处理和工业控制。

●第三代(1965—1971)是小规模集成电路计算机。存储器进一步发展,体积更小,成本更低。计算机增加了多种外部设备,软件得到了一定的发展,开始使用操作系统,文字图像处理功能得到加强。

●第四代(1972年以后)大规模、超大规模集成电路计算机。应用更加广泛,出现了微型计算机。

到了20世纪80年代,美、日等国家开始研制智能型计算机。这种计算机可以模拟或部分代替人的智能活动,且可以具有人际自然通信的能力。图1.2 历代计算机使用的电子器件

1.1.2 微电子技术

信息技术、通信技术、计算机技术的发展都离不开一项基础技术——微电子技术。微电子技术是20世纪人类最伟大的发明之一,它最重要的应用领域就是计算机技术领域。微型计算机的各个组成部分都是微电子技术的结晶。集成电路的高速发展使得计算机的核心技术——微处理器的发展越来越快。

1971年Intel推出的第一代微处理器4004,主频只有108千赫。70年代末推出的16位微处理器8086,主频达到5~10兆赫,性能比8008提高100倍以上。80年代中期推出的80386芯片已采用1微米工艺,主频达到33兆赫。1993年Intel推出66兆主频的奔腾(Pentium)芯片采用了超标量技术,性能比33兆赫的486芯片高5倍。1995年以后,由于采用先进的RISC(Reduced Instruction Set Computing,精简指令集)技术、铜线技术等,芯片速度平均每年递增50%以上。到2000年,主频1千兆赫以上的微处理器芯片已问世。正是由于集成电路的出现才使计算机成为信息科技的核心。反过来说,如果没有计算机,集成电路也不可能发展得如此迅速,因为对于大规模集成电路而言,抛开了计算机的辅助设计、辅助制造,那是不能想象的。

现在微电子加工企业可以把上亿个电子器件集成在指甲大小的硅片上。随着精细化技术的发展,器件尺寸已缩小到纳米(10-9米),即毫微米级,这就是近几年蓬勃兴起的纳米技术,也有人预言21世纪将出现“纳电子”技术。因此,准确地讲,微电子技术主要是指晶体管等基础元件尺寸在微米(10-6米)数量级左右的半导体集成电路技术。

追根溯源,微电子技术的诞生应归功于晶体管的发明。1947年发明锗晶体管以后,人们又经过多年努力突破了提炼半导体材料硅单晶的技术,晶体管的应用才开始普及。商品化的集成电路则是于1962年问世。第一代集成电路大部分采用双极型晶体管和晶体管—晶体管逻辑(TTL),结构复杂,集成度低。到了70年代则采用金属-氧化物-半导体场效应晶体管,即MOS工艺,成为集成电路的主流。MOS集成电路(包括PMOS、NMOS和CMOS等)制造工艺简单、集成度高、噪声小,目前多数微处理器和存储器都属于这一类集成电路。

1965年美国Intel公司的创始人之一戈登·摩尔根据1958年以来集成电路的发展,预测每18个月同样硅片面积上的晶体管数目将翻一番。这一预测在后来的几十年中基本得到验证,被信息领域广泛引用为“摩尔定律”。

然而,2011年3月11日发生在日本的9级地震可能会影响到“摩尔定律”。地震后,Ni⁃kon的五间厂房全部暂停生产,其中的三间制造光刻设备,而Intel公司的部分45纳米微处理器和所有32纳米微处理器都要用到这些光刻设备。

数字集成电路多数由门电路组成,因此集成电路的规模可按一片集成电路包含的门电路数目(即集成度)分类。集成电路按集成度可分为六大类:小规模集成电路(SSI)、中规模集成电路(MSI)、大规模集成电路(LSI)、超大规模集成电路(VLSI)、特大规模集成电路(ULSI)和巨大规模集成电路(GLSI),其分类标准如表1.1所示:表1.1 集成电路的集成度分类

集成电路被广泛应用于社会的各个行业。例如在工业方面,普通机床采用微电子技术,通过改造就可以转变成为数控机床,于是其加工的品种就产生了很大的变化,其加工精度和效率将大幅度提高,效益也因而大大增长。又如在商业领域,由于微电子技术及计算机的应用,使传统的账册产生了根本的变化,账目的登录、存储、统计、查询都产生了根本的改变,于是有了大超市、大卖场。微电子技术对电子产品的消费市场也产生了深远的影响,价廉、可靠、体积小、重量轻的微电子产品使电子产品面貌一新。微电子技术产品和微处理器不再是专门用于科学仪器世界的贵族,而是落户于各式各样的普及型产品之中,进入普通百姓家,例如电子玩具、游戏机、学习机及其他家用电器产品等。

总之,作为现代信息技术的核心,微电子技术已经渗透到如现代通信、计算机技术、医疗卫生、环境工程、能源、交通、自动化生产等各个方面,成为一种既代表国家现代化水平又与人民生活息息相关的高新技术。

1.1.3 计算机的特点

计算机的主要特点有工作自动化、处理速度快、计算精度高、记忆能力强、逻辑判断能力可靠、通用性强、支持人机交互等。

●工作自动化:计算机是由程序控制其操作过程的。只要根据应用的需要,事先编制好程序并输入计算机,计算机就能自动、连续地工作,完成预定的处理任务。计算机中可以存储大量的程序和数据。存储程序是计算机工作的一个重要前提,也是计算机能自动处理的基础。

●处理速度快:计算机的运算部件采用的是电子器件,其运算速度远非其他计算工具所能比拟。目前世界上最快的计算机每秒可运算万亿次,普通PC机每秒也可处理上百万条指令。这不仅极大地提高了工作效率,而且使时限性强的复杂处理可在限定的时间内完成。

●计算精度高:由于计算机采用二进制数字进行计算,因此可以通过增加表示数字的设备和运用计算技巧等手段,使数值计算的精度越来越高,可根据需要获得千分之一到几百万分之一甚至更高的精度。

●记忆能力强:计算机的存储器类似于人的大脑,可以记忆大量的数据和计算机程序,随时提供信息查询、处理等服务。在运算过程中不必每次都从外部去取数据,而只需事先将数据输入存储器中,运算时直接从存储器中获得数据,从而大大提高了运算速度。

●逻辑判断能力可靠:具有可靠的逻辑判断能力是计算机的一个重要特点,也是计算机能实现信息处理自动化的重要原因。在程序执行过程中,计算机根据上一步的处理结果,能运用逻辑判断能力自动决定下一步应该执行哪一条指令。计算机的计算能力、逻辑判断能力和记忆能力三者的结合,使得计算机的能力远远超过了任何一种工具而成为人类脑力延伸的有力助手。

●通用性强:计算机能够在各行各业得到广泛的应用,原因之一就是其具有很强的通用性。同一台计算机只要安装不同的软件或连接到不同的设备上,就可以完成不同的任务。

●支持人机交互:计算机具有多种输入输出设备,配上适当的软件后,可支持用户进行方便的人机交互。以鼠标为例,当用户手握鼠标,只需将手指轻轻一点,计算机便随之完成某种操作功能,真可谓“得心应手,心想事成”。当这种交互性与声像技术结合形成多媒体用户界面时,更可使用户的操作自然、方便、丰富多彩。

1.1.4 计算机的发展趋势

随着计算机应用的广泛和深入,又向计算机技术本身提出了更高的要求。当前,计算机的发展表现为四种趋向:巨型化、微型化、网络化和智能化。

●巨型化:天文、军事、仿真等领域需要进行大量的计算,要求计算机有更快的运算速度、更大的存储量,这就需要研制功能更强的巨型计算机。这是尖端科学的需要,也是记忆海量信息以及使计算机具有类似人脑的自主学习和复杂推理功能所必需的。巨型机的发展集中体现了计算机科学技术的发展水平。

●微型化:专用微型机已经大量应用于仪器、仪表和家用电器中,通用微型机已经大量进入办公室和家庭,但人们需要体积更小、更轻便、易于携带的微型机,以便出门在外或在旅途中均可使用计算机。应运而生的便携式微型机(笔记本型)和掌上型微型机正在不断涌现,质量更加可靠,性能更加优良,价格更加低廉,整机更加小巧。

●网络化:将地理位置分散的计算机通过专用的电缆或通信线路互相连接,就形成了计算机网络。网络化能够充分利用计算机的宝贵资源并扩大计算机的使用范围,为用户提供方便、及时、可靠、广泛、灵活的信息服务。人们足不出户就可获取大量的信息,与世界各地的亲友快捷通信,进行网上贸易等。

智能化:智能计算机具有解决问题、逻辑推理、知识处理和知识库管理等功能。人与计算机的联系是通过智能接口,用文字、声音、图像等与计算机进行自然对话。目前已研制出的各种“机器人”已能够部分地代替人的脑力劳动。智能化使计算机突破了“计算”这一初级的含意,从本质上扩充了计算机的能力,使其可以越来越多地代替人类的脑力劳动。

近年来,通过进一步的深入研究,人们发现由于电子电路的局限性,理论上电子计算机的发展也有一定的局限,因此人们正在研制不使用集成电路的计算机,例如生物计算机、光子计算机、超导计算机等。

1.2 计算机的分类

计算机的分类多种多样。可以按照其内部的逻辑结构划分,也可以按照其性能和用途划分为如下几大类。由于计算机技术发展迅猛,不同类型的计算机之间的界限已非常模糊。

●超级计算机(Super Computer):采用大规模并行处理结构,具有极强的运算处理能力。目前,超级计算机主要用于战略武器(如核武器和反导弹武器)的设计、空间技术、石油勘探、长期天气预报以及社会模拟等尖端领域。世界上只有少数几个国家能生产超级计算机,我国于1983年、1992年、1997年分别推出了银河Ⅰ、银河Ⅱ和银河Ⅲ,2003年研制出的深腾6800在当时全球超级计算机中居于第14位。截至2010年11月,我国首台千万亿次超级计算机系统“天河一号”成为全球运算速度最快的超级计算机,处理速度达到每秒钟2.57千万亿次浮点运算;排名第二的是美国的超级计算机Cray Jaguar,它的处理速度达到每秒钟2.33千万亿次浮点运算;我国另外一款超级计算机“星云”排名第三,计算速度达到每秒钟1.27千万亿次浮点运算。

●大型计算机(Main Frame):价格比较贵,运算速度没有超级计算机那样快,一般只有大中型企事业单位才有必要配置和管理它。要以大型计算机和其他外部设备为主,并且配备众多的终端,组成一个计算机中心,才能充分发挥其作用。

●小型计算机(Mini Computer):一般为中小型企事业单位或某一部门所用,例如高等院校的计算机中心都以一台小型机为主机,配以几十台甚至上百台终端机,以满足大量学生学习程序设计课程的需要。当然其运算速度和存储容量都比不上大型计算机。

●个人计算机(Personal Computer):又称为PC机,是在第四代计算机时期出现的一个新机种。它虽然问世较晚,却发展迅猛,初学者接触和认识计算机多数是从PC机开始的。PC机的特点是轻、小、价廉、易用。今天,PC机的应用已遍及各个领域,几乎无处不在,无所不用。

1.3 计算机的应用

计算机的应用领域已渗透到社会的各行各业,正在改变着传统的工作、学习和生活方式,推动着社会的发展。计算机的主要应用领域如下:

●科学计算:指利用计算机来完成科学研究和工程技术中提出的数学问题的计算。在现代科学技术工作中,科学计算问题是大量和复杂的。利用计算机的高速计算、高精度、大存储容量和连续运算的能力,可以解决人工无法解决的各种科学计算问题。科学计算是计算机最早的应用领域。

●信息处理:指对各种数据进行收集、存储、整理、分类、统计、加工、利用、传播等一系列活动的统称。据统计,80%以上的计算机主要用于数据处理,这类工作量大、面宽,决定了计算机应用的主导方向。目前,信息处理已广泛地应用于办公自动化、企事业单位计算机辅助管理与决策、情报检索、图书管理、电影电视动画设计、会计电算化等各行各业。信息正在形成独立的产业,多媒体技术展现在人们面前的信息不仅是数字和文字,也有声情并茂的声音和图像。

●计算机辅助技术:包括计算机辅助设计CAD(Computer Aided Design)、计算机辅助制造CAM(Computer Aided Manufacturing)和计算机辅助教学CAI(Computer Aided Instruction)等多方面,是近几年来迅速发展的一个计算机应用领域。CAD广泛应用于船舶、飞机、汽车、建筑、电子和轻工业等领域,可提高设计工作的自动化程度和设计质量;CAM则是利用计算机系统进行生产设备的管理、控制和操作,能提高产品质量、降低成本、提高生产率和改善劳动条件;CAI使教学手段达到一个新的水平,即利用计算机模拟一般教学设备难以表现的物理或工作过程,可实现互动教学、个别指导和因人施教,引导学生循序渐进地学习,极大地提高了教学效率。

●过程控制:也称为实时控制,是使用计算机对连续工作的控制对象实行自动控制。要求计算机能及时搜集检测信号,通过计算处理,发出调节信号对控制对象进行自动调节。过程控制应用中的计算机对输入信息的处理结果的输出总是实时进行的。例如,在军事上常使用计算机控制导弹等武器的发射与导航,自动修正导弹在飞行中的航向。过程控制已在机械、冶金、石油、化工、纺织、水电、航天等部门得到广泛的应用。

●人工智能:研究、解释和模拟人类智能、行为及其规律的一门学科。其主要任务是建立智能信息处理理论,进而设计可以展现某些近似于人类智能行为的计算机系统。目前人工智能的研究已取得不少成果,有些已开始走向实用阶段。例如,能模拟高水平医学专家进行疾病诊疗的专家系统,具有一定思维能力的智能机器人等。

●网络应用:计算机技术与现代通信技术的结合构成了计算机网络,实现了信息双向交流,各种软、硬件资源的共享,同时利用多媒体技术扩大计算机的应用范围。例如,利用计算机辅助教学和网络,开设网络远程教学代替传统教学方式。以计算机为核心的信息高速公路的实现将进一步改变人们的生活方式。

●多媒体技术:把数字、文字、声音、图形、图像和动画等多种媒体有机结合起来,利用计算机、通信和广播电视技术使它们建立起逻辑联系,并能进行加工处理(包括对这些媒体的录入、压缩和解压缩、存储、显示和传输等)的技术。目前多媒体计算机技术的应用领域正在不断拓宽,除了知识学习、电子图书、商业及家庭应用外,在远程医疗、视频会议中也得到了极大的推广。

1.4 信息技术的基本概念

1.4.1 什么是信息

我们生活在一个信息时代。企业家通过了解市场信息来确定产品的生产销售策略,教师和学生通过教学大纲来教学和学习,老百姓离开有关衣、食、住、行的信息的话一刻也无法生活。信息社会的到来,以计算机和网络技术为核心的现代技术的飞速发展,正深刻地改变着我们的生产、生活和学习方式。那么,什么是信息呢?

信息本身并不是实体,必须通过载体才能体现,但不随载体的物理形式而变化。书籍报刊上的文字、数字、符号、图形等是信息的载体,电视中播放的声音、图像是信息的载体,电话、收音机中传输的语音也是信息的载体。它们所蕴涵的内容都是信息。可以通俗地认为:信息是对人们有用的数据,这些数据将可能影响到人们的行为与决策。

信息的载体和信息处理、加工的设备很多,电视机就是一种集声音、图像等各种信息表现形式为一体的信息设备。而使用计算机处理信息,一般是指利用计算机速度快、精度高、存储能力强、具有逻辑判断和自动运行能力的特点,使用计算机和其他辅助方式,把人们在各种实践活动中产生的大量信息按照不同的要求及时地收集储存、整理、传输和应用。如报刊排版、资源调查、卫星跟踪等,都是用计算机处理信息的具体表现。

1.4.2 信息技术

人类通过感觉器官(眼、耳、鼻、舌、身体)获取信息,使用神经网络传递信息,利用思维器官(大脑)处理信息并再生信息,再使用效应器官(手脚)使用信息。信息技术是指用来扩展人的信息器官功能、协助人们进行信息处理的一类技术。感知与识别技术可以扩展人类的感觉器官功能,扩大人们的感知范围,提高感知精度和灵敏度;通信技术与存储技术则可以扩展神经网络功能,消除人们交流信息的空间和时间障碍;计算处理技术能扩展思维器官功能,增强人们的信息加工处理能力;控制与显示技术可以扩展效应器官功能,增强人们的信息控制能力。

人们使用计算机收集、储存、整理、传输和应用信息的能力将成为现代人的基本素质。当今世界,发展信息技术、信息产业、实现信息化,已经成为各国参与世界范围的政治、经济、军事竞争,进行综合国力较量的焦点。信息能力正成为衡量一个国家综合国力的重要标志。在信息时代,谁占有信息,谁就拥有政治、经济、军事的主动权。

1.5 信息在计算机中的表示

计算机应用的实质是使用计算机进行信息处理。任何信息,包括数字、文字、声音、图像等,都必须被转换成为二进制形式的数据后才能由计算机进行表示、处理、存储和传输。数字和文字的表示方法在下文介绍,而关于声音和图像等信息的表示方法将在后面的章节中介绍。

1.5.1 数制及转换

1)什么是二进制?

首先来考察一下我们熟悉的十进制计数系统。十进制的英文为Decimal,为与其他进制数有所区别,可在十进制数字后面加字母“D”,如169.7D。一个数可以用10个不同的数字符号(0、1、2、3、4、5、6、7、8、9)来表示,每个符号处于十进制数中不同位置时,它代表的实际数值是不同的。例如,169.7代表的实际数值是210-1(169.7)=1×10+6×10+9×10+7×1010

一般地,一个十进制数S可以表示为

S=KK……KK.KK……Knn-110-1-2-m

所代表的实际数值是nn-110

S=K×10+K×10+……+K×10+K×10+nn-110-1-2-m

K×10+K×10+……+K×10n-1-2-m

其中K(j=n,n-1,……,1,0,-1,-2,……,-m)可以是0、1、j2、3、4、5、6、7、8、9这10个数字符号中的任何一个。j

十进制中的“10”称为十进制的基数(Radix),10称为K的权j(Weight)。十进制中低位计满10之后就要向高位进1,即日常所说的“逢十进一”。

同理,二进制的基数是“2”,使用两个不同的数字符号即0和1,采用“逢二进一”的计数规则。二进制的英文为Binary,数字后面加“B”即表示二进制数。例如,二进制数(1010.1)也可以表示2为1010.1B,它代表的实际数值是3210-1(1010.1)=1×2+0×2+1×2+0×2+l×2=(10.5)210

一般地,一个二进制数S可以表示为

S=KK……KK.KK……Knn-110-1-2-m

所代表的实际数值是nn-110

S=K×2+K×2+……+K×2+K×2+nn-110-1-2-m

K×2+K×2+……+K×2-1-2-m

其中K(j=n,n-1,……,1,0,-1,-2,……,-m)只可以是0或1j这两个数字符号中的任何一个。

在日常生活中人们通常使用十进制计数,这是人们长期生活形成的习惯。那么为什么计算机采用二进制,而不采用人们熟悉的十进制呢?

首先,二进制中只有0和1这两个数字符号,使用有两个稳定状态的物理器件就能表示二进制数的每一位,而制造有两个稳定状态的物理器件要比制造有多个稳定状态的物理器件容易得多,且易于实现高速处理。

其次,二进制的运算规则非常简单。

第三,二进制的1和0与逻辑代数的“真”和“假”相吻合,逻辑“真”使用1表示,逻辑“假”使用0来表示,为计算机实现逻辑运算和程序中的逻辑判断提供了便利。

2)二进制数的运算

二进制数的运算分为算术运算和逻辑运算两种。最简单的算术运算是加法和减法,其基本运算规则如下所示:

基本的逻辑运算有如下三种:逻辑加(也称“或”运算,使用符号“OR”、“∨”或“+”表示)、逻辑乘(也称“与”运算,使用符号“AND”、“∧”或“·”表示)和取反(也称“非”运算,使用符号“NOT”或“”表示)。逻辑加的运算规则是“有真则真”,逻辑乘的运算规则是“同真则真”,具体运算如下所示:

取反运算最简单,“0”取反后是“1”,“1”取反后是“0”。

需要注意的是,算术运算是会发生进位和借位运算的,而逻辑运算则按位独立进行运算。例如,1010和0110分别进行算术加、算术减、逻辑加和逻辑乘的运算如下:

3)二进制与其他进制之间的转换(1)八进制与十六进制

从十进制数和二进制数的概念出发,可以进一步推广到更为一般的任意进制数。最常用的有八进制数和十六进制数两种。

八进制数使用0、1、2、3、4、5、6、7共8个数字符号来表示,逢八进一。八进制的英文为Octal,数字后面加字母“O”即表示一个八进制数,有时为了与数字“0”区别,改为在数字后面加“Q”,如八进制数103.6可以表示为(103.6)8、103.6O或103.6Q。

十六进制数使用0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F共16个数字符号来表示,逢十六进一。十六进制的英文为Hexadecimal,数字后面加字母“H”即表示一个十六进制数,如十六进制数8A.4可以表示为(8A.4)16或8A.4H。表1.2是常用的几种进制的相互转换表。表1.2 常用的几种进制的相互转换表(2)二进制数转换成十进制数0

采用“按权展开求和法”,注意小数点左边第一位的权为2,小数点右边第一位的权为2-1,例如:210-1-2(101.01)=(1×2+0×2+1×2+0×2+1×2)=(5.25)21010“按权展开求和法”将给定的二进制数转换成十进制数的方法具有普遍意义。用这种方法实现将八进制数、十六进制数转换成为十进制数,仅仅是展开式中的权不同而已。例如:210-1(103.6)=(1×8+0×8+3×8+6×8)=(67.75)8101010-1(8A.4)=(8×16+10×16+4×16)=(138.25)161010

注意,(8A.4)16中的“A”在转换时需要转变成“10”进行计算。(3)十进制整数转换成二进制整数

采用“除2逆序取余法”,注意一直要除到商为0为止。例如,将十进制数37转换成二进制数:

即(37)=(100101)。102

显然,这种方法可以推广。若要将十进制整数转换成八进制整数,就可以用“除8逆序取余法”;若要转换成十六进制整数则使用“除16逆序取余法”,此时需要注意余数,如果余数大于9,则应该把余数转换成对应的字母来表示。(4)十进制纯小数转换成二进制纯小数

采用“乘2顺序取整法”,即把待转换的十进制纯小数乘以2,取其积的整数部分(0或1)作为二进制小数的最高位,而将其小数部分再乘以2,取第二次乘积的整数部分作为二进制小数的次高位,以此类推,直到小数部分为0或达到所要求的位数为止。注意,最后的结果不要漏掉0和小数点。例如:

将(0.375)转换成二进制纯小数:10

即(0.375)=(0.011)。102

将(0.46)转换成二进制纯小数:10

即(0.46)=(0.01110),是个近似值。102

同理,把一个十进制纯小数转换成八进制纯小数可以用“乘8顺序取整法”,转换成十六进制数采用“乘16顺序取整法”。(5)二进制数转换成八(十六)进制数

以小数点为界,分别向左、向右将每三(四)位分成一组,若最左边或最右边的一组不足三(四)位,则在最左边或最右边以零补足,然后每一组用一位八(十六)进制数表示即可。

例如,将(1010011.10101)分别转换成八进制数和十六进制2数:(1010011.10101)=(001 010 011.101 010)2=(123.52)28(1010011.10101)=(01010011.1010 1000)=(53.A8)2216(6)八(十六)进制数转换成二进制数

以小数点为界,分别向左、向右将每一位八(十六)进制数展开成三(四)位二进制数,最终最左边和最右边的零可以略去。注意,一位八(十六)进制数的“0”也同样要展开成三(四)位二进制数“000”(“0000”)。

例如,将(306.741)转换成二进制数:8(306.741)=(011000110.111100001)8=(11000110.111100001)22

将(2B.08)转换成二进制数:16(2B. 08)=(00101011.00001000)=(101011.00001)1622

1.5.2 信息的计量单位

如前所述,计算机中的信息都是采用二进制数表示的。信息的最小单位是“比特”,英文是“bit”,是“binary digit”的缩写。比特也称为“二进位”或“位”,使用“b”表示,它有且仅有“0”和“1”这两个值。

较比特稍大的单位是“字节”,英文是“byte”,使用“B”表示。一个字节包含8个比特,即

b b b b b b b b76543210

其中每个bi表示一个二进位,b和b分别代表最高位和最低位。70

计算机运算和处理信息时还经常使用“字”(word)。值得注意的是,字长并不统一,不同的计算机字长有可能不同,有的由2个字节构成,有的由4个、8个甚至更多个字节构成。

计算机在存储信息时存储容量单位使用字节或字长显然不合适,需要使用更大的单位。这些单位都是2的幂次,这样做的目的是有助于存储器的设计。常用的存储容量单位有:10

千字节(kilobyte,简写为KB),1KB=2字节=1024B20

兆字节(megabyte,简写为MB),1MB=2字节=1024KB30

吉字节(gigabyte,简写为GB),1GB=2字节=1024MB40

太字节(terabyte,简写为TB),1TB=2字节=1024GB

在数据通信和计算机网络中传输信息时,由于是一位一位串行传输,传输速率的度量单位是每秒多少比特。常用的速率单位有:

比特/秒(b/s),也称“波特”(bps)3

千比特/秒(kb/s),1kb/s=10位/秒=1000b/s(注意,这里的“k”表示1000)6

兆比特/秒(Mb/s),1Mb/s=10位/秒=1000kb/s9

吉比特/秒(Gb/s),1Gb/s=10位/秒=1000Mb/s12

太比特/秒(Tb/s),1Tb/s=10字节/秒=1000Gb/s

1.5.3 数值信息的表示

计算机中的数值信息分为整数和实数两大类,表示方法也有很大的区别。

1)整数

整数不带有小数点,或者说其小数点始终隐含在个位数的后面,故也称之为“定点数”(fixed point integer)。计算机中的整数又可以分为正整数(unsigned integer,即不带符号的整数)和整数(signed integer,即带符号的整数)两类,它们可以用8位、16位、32位甚至更多位数来表示。8

8个二进制位表示的正整数的取值范围是0~255(2-1),16个16二进制位表示的正整数的取值范围是0~65535(2-1),32个二进制32位表示的正整数的取值范围是0~4294967296(2-1)。

而带符号的整数必须使用一个二进位来作为符号位,一般总是使用最高位(即最左边的一位),使用“0”表示“+”(正数),使用“1”表示“-”(负数)。例如,使用8个二进制位表示整数+56和-56分别如下:(+56)=(00111000)(-56)=(10111000)102102

由此可见,8个二进制位表示的整数的取值范围是-127~77+127(-2+1~+2-1),16个二进制位表示的整数的取值范围1515是-32767~+32767(-2+1~+2-1),若使用n个二进制位表示整数,n-1n-1则其取值范围是-2+1~+2-1。

上面介绍的表示方法称为“原码”表示法,使用统一加减运算规则,方便计算机运算,但数值为负的整数在计算机内部实际上是采用“补码”来表示的。

负整数补码求解的步骤为:先将负整数转换成“原码”的形式,最高位即符号位肯定为“1”,将绝对值的每一位取反,得到称为“反码”的表示形式,最后将“反码”的最低位(末位)加“1”,即可得到“补码”的表示形式。例如,(-56)=1011,1000原(-56)=1100,0111反(-56)=1100,1000补

由于二进制编码的位数较多,故采用每4位用“逗号”隔开的书写格式。

注意,只有负整数才需要通过上面的步骤计算“补码”,而正整数的“补码”与“原码”相同。

下面以8个二进制位表示一个整数为例,考察两个非常有趣的数字“0”和“-128”。若将“0”分别看作“+0”和“-0”,则它们的“原码”和“补码”的表示形式如下:(+0)=0000,0000(-0)=1000,0000原原(+0)=0000,0000(-0)=0000,0000补补

可见,当“0”采用“原码”的表示形式时,“0”有两个编码,而采用“补码”来表示后,“+0”和“-0”的编码统一成了“0000,0000”。

下面考察数字“-128”。可以求得“-128”的绝对值是“1000,0000”,显然使用8个二进制位已无法表示“-128”的原码,因此临界值“-128”只有补码的表示形式,即(-128)=1000,0000。引补入“补码”后,8个二进制位表示的整数的取值范围扩大成-128~77+127(-2~+2-1),16个二进制位表示的整数的取值范围扩大1515成-32768~+32767(-2~+2-1),n个二进制位表示的整数的取值范围是-2~+2-1。n位二进制补码可表示的个数要比n位原码多一n-1n-1个(即补码“1000……00”被用来表示整数-2)。n-1

2)实数

实数通常带有小数点,整数和纯小数都是实数的特例。由于实数的小数点的位置不确定,故也称之为“浮点数”(floating point integer)。

任意一个十进制实数都可以看成是一个10的幂次和一个十进制纯小数之积。例如:3

309.46=10×(0.30946)-2

-0.001784=10×(-0.1784)

同理,任意一个二进制实数也可以看成是一个2的幂次和一个二进制纯小数之积。注意,2的幂次也同样是用二进制表示的。例如:101

11010.101=2×(0.11010101)-11

-0.0001011=2×(-0.1011)

由此可以看出,任意一个二进制实数在计算机内部都可以表达成指数(称为“阶码”)和纯小数(称为“尾数”)两部分。

由于阶码可采用原码、补码等不同的编码,尾数的格式及小数点的位置的规定也各不相同,故早期不同计算机对浮点数的表示方法互不兼容。为此,美国电气与电子工程师协会(IEEE)制订了相关的工业标准,现已被绝大多数处理器所采用。

1.5.4 字符信息的表示

由于人类的文字中存在着大量重复字符,而计算机擅长处理数字,为了减少需要保存的信息量,可以使用一个数字编码来表示每个字符。通过对每个字符规定一个唯一的数字编码,然后为该编码建立对应的输出图形,那么在文件中仅需保存字符的编码就相当于保存了文字。在需要显示时,先取得编码,通过编码表查到字符对应的图形,然后将图形显示出来,人就可以看到文字了。

1)西文的表示方法

西文字符包括拉丁字母、数字、标点符号和一些特殊符号,统称为“字符”(Character)。所有字符的集合称做“字符集”。字符集中每一个字符对应一个编码,构成编码表。

显然编码表是用二进制表示的,人们理解起来很困难。为保证人和计算机之间能进行正确的信息交换,人们编制了统一的信息交换代码。目前使用最广泛的(但并不是唯一的)西文字符集代码表是美国人制定的ASCII码表,其全称是“美国信息交换标准代码”(American Standard Code for Information Interchange)。

表1.3即为ASCII码表,表头中的“高”代表一个字节的高4位(b~b),“低”代表该字节的低4位(b~b)。从表中可以看出,7430一个字节的编码对应一个字符,最高位在计算机内部一般为“0”,故ASCII码是7位的编码,共可表示128个字符。

表中的前2列字符和最后一个字符(DEL)称为“控制字符”,在传输、打印或显示输出时起控制作用;剩下的95个字符是可打印(显示)的字符,并可在键盘上找到对应的按键。表1.3 ASCII码表

显然美国人顺利解决了字符的问题,可是欧洲各国还没有,例如法语中就有许多英语中没有的字符,因此ASCII码不能帮助欧洲人解决编码问题。于是人们借鉴ASCII码的设计思想,创造了使用8位二进制数表示字符的扩充字符集,这样就可以使用256种数字代号来表示更多的字符。在扩充字符集中,从0到127的代码与ASCII码保持兼容,从128到255用于其他的字符和符号。由于不同语言有各自不同的字符,于是人们为此制定了大量不同的编码表,其中国际标准化组织的ISO 8859标准得到了广泛的使用。

EBCDIC(Extended Binary Coded Decimal Interchange Code,扩展的二⁃十进制交换码)是另一种西文字符编码,它采用8位二进制表示,共可表示256个字符,主要用于IBM的大型主机。

2)汉字的表示方法

西文是线性文字,字符数量少。汉字是表意文字,属于大字符集,数量巨大,这给汉字在计算机内的表示、传输、处理及输入和输出带来了一系列的问题。(1)汉字输入码

汉字输入码是用来完成汉字输入的汉字编码,也称为汉字的外码。汉字输入码的要求有如下特点:易学、易记、效率高、重码少、容量大等。但到目前为止,还没有一种在各方面都表现出色的编码。

一般汉字输入码可分为以下四类:①字音编码,是基于汉语拼音的编码,如智能ABC、全拼、微软拼音等,简单易学,适合非专业人员,但它的重码多,需要增加选择操作;②字形编码,是根据汉字的字形分解归类的编码,如五笔字型和表形码,这类编码重码少,输入速度快,但规则比较难,不易上手;③音形编码,吸取了字音和字形编码的优点,规则相对简单,重码相对少,但学习仍不易,这类编码有自然码等;④数字编码,使用一串数字来表示汉字,如区位码、电报码等,它们难以记忆,很少使用。

另外,汉字除了可以使用键盘输入外,还可以使用扫描仪和相应的软件进行扫描输入识别,或使用书写板进行手写汉字联机识别,甚至还可以使用麦克风通过口述的方式输入汉字。(2)汉字机内码

虽然汉字使用不同的输入码或其他方法输入计算机,但同一个汉字在计算机内部的编码仍然是一样的。

1981年国家标准总局颁布了第一个国家标准汉字编码——《信息交换用汉字编码字符集·基本集》(GB2312)。在此标准中共收录了7445个汉字和符号,为每个字符规定了标准代码,以便在不同计算机系统之间进行汉字信息交换。

GB2312由三部分组成。第一部分是字母、数字和各种符号共682个,统称为图形符号;第二部分是一级常用汉字,共3755个,按照汉语拼音排序;第三部分是二级常用汉字,共3008个,按偏旁部首排序。

GB2312的所有字符共分为94个区(即01~94行),行号称为区号;每个区再分为94个位(即01~94列),列号称为位号。某汉字所在的区号和位号共同组合成该汉字的编码,称为“区位码”。

为了与ASCII码有所区别,在计算机内部,汉字的区号和位号分别用1个字节表示,且把字节的最高位均规定为1。这种高位均为1的编码称为“机内码”,简称“内码”。

机内码与国标码、区位码有以下换算关系:

高位机内码=80H+高位国标码 高位国标码=20H+区码

低位机内码=80H+低位国标码 低位国标码=20H+位码

由上述公式可以看出,在转换过程中区码和位码是分别进行转换的。例如:“大”字的区号是20,位号是83,则其区位码为2083,二进制表示为0001010001010011,十六进制表示为1453。将“大”字由区位码转换成机内码的过程如下:“大”字的高位机内码=80H+34H=B4H=10110100B“大”字的低位机内码=80H+73H=F3H=11110011B“大”字的高位国标码=20H+14H=34H=00110100B“大”字的低位国标码=20H+53H=73H=01110011B

即“大”字的机内码十六进制表示为B4F3H,二进制表示为1011010011110011B。

现有一串十六进制表示的机内码“7AB1C235D8B4”,根据汉字的机内码由2个字节组成,且每个字节最高位均为1的特点,可以判断出该串机内码中包含了2个西文字符(7AH和35H)和2个汉字(B1C2H和D8B4H)。

由于GB2312规定的字符编码实际上与ISO8859是冲突的,所以在中文环境下查阅某些西文文章,使用某些西文软件时,有时就会出现乱码,这实际上就是因为西文中使用了与汉字编码冲突的字符,被系统生硬地翻译成中文造成的。

6763个汉字显然不能表示全部的汉字,但由于当时计算机的处理和存储能力都有限,所以在制定标准时只包含了常用汉字,因此时常会遇到生僻字或繁体字无法输入到计算机中的问题。

为了解决这些问题,在1995年我国发布了GBK,即《汉字内码扩展规范》。GBK向下与GB2312完全兼容,向上支持ISO10646国际标准(即UCS),在前者向后者过渡的过程中起到了承上启下的作用。GBK编码采用双字节表示,在GBK.0中共收录了21886个符号,汉字1有21003个。

GB18030是最新的汉字编码字符集国家标准,于2000年发布并在2001年开始执行,它向下兼容GBK、GB2312标准和CJK编码(Chinese Japanese Korean,它包含了来自中国、日本、韩国的文字编码),解决了汉语、日语、韩语和中国少数民族文字组成的大字符集计算机编码问题,满足了中国、日本和韩国等东亚地区信息交换多文种、大字量、多用途、统一编码格式的要求。

由于历史原因,中国台湾、香港等地区还在使用繁体中文,他们制定了一套表示繁体中文的字符编码,称为“BIG5汉字编码标准”(简称“大五码”),采用双字节表示,但不兼容简体中文。BIG5使用了与GB2312大致相同的编码范围来表示繁体汉字。同样的编码在祖国大陆和台湾地区的编码中实际上表示的是不同的字符。当大陆的计算机遇到BIG5编码的文字时,就会转换成默认的GB2312,形成乱码。

由于历史和文化的原因,日文和韩文中也包含许多汉字,像汉字一样拥有大量的字符,他们的字符编码也同样与中文编码有冲突。《中文之星》、《南极星》等软件就是用于在这些编码中进行识别和转换的专用软件。

20世纪80年代后期互联网的出现彻底打破了人们的生活。在一切都数字化的今天,文件中的数字到底代表什么字?问题的根源在于有太多的编码表。如果全球都使用一张统一的编码表,那么每个编码就会有一个确定的含义,就不会再有乱码的问题。

于是80年代成立的Unicode协会制定了一个能够覆盖几乎任何语言的编码表,Unicode编码的全称是“通用多八位字符集”(Universal Multiple-Octet Coded Character Set,简称为“UCS”)。UCS编码空间大,但效率低。其简化方案是使用两个字节表示编码,称为“UCS-2”。

3)字符的显示(打印)

通过计算机处理后的字符如果需要在屏幕上显示或打印出来,则需要把机内码转换成人们可以阅读的字形格式。字形码又称输出码或字模,就是将字符的字形经过数字化后形成的一串二进制数,用于显示和打印字符。字形码的集合称为“字库”(font)。由于输出的需要,人们设计了不同字体的字形,也相应有不同的字库。例如英文的常见字库有“Times New Roman”、“Arial”等,汉字的常见字库有“宋体”、“楷体”、“隶书”等。一些特殊行业如广告设计、平面设计等还会使用一些特殊的字库。要显示或打印输出一个字符时,计算机根据该字符的机内码找出其在字库中的位置,再取出其字模信息作为字形在屏幕上显示或在打印机上打印输出。

在Windows XP中编辑文本时若字体采用“楷体GB_2312”,在Windows Vista操作系统下看到的文档字体会显示为“宋体”,不仅字体看着别扭而且排版格式也发生了变化。这是因为Windows XP中的楷体为“楷体GB_2312”,而Windows Vista中楷体为“楷体”,Vista系统中没有对应字体,故显示为默认的“宋体”。解决方法是将Windows XP系统中的字库文件“楷体GB_2312”复制到Windows Vista的字库文件夹Fonts中即可。

点阵字形码是一种最常见的字形码,它用1位二进制码对应屏幕上的一个像素点,字形笔画所经过处的亮点用1表示,没有笔画的暗点用0表示。点阵的实例很多,例如运动场、车站码头等地的大屏幕显示屏,就是由许多行和列的灯泡组成的点阵,当某些灯亮时,就可以组成文字或图案。西文字符的点阵通常用7行5列的二进制位组成,记为7×5点阵,如图1.3所示。针式打印机的机头也是由按行、列排列的针组成的点阵,计算机控制二进制位为1的针打出去,二进制位为0的针不打,于是文字和图形就打印在纸张上了。

汉字的输出原理与西文的输出原理是相同的。不同的是汉字笔画较多,要能很好地表示1个汉字,起码需要16×16点阵才行。如果要求字形逼真美观,点阵的点数还要增加。如用24×24、32×32、48×48、64×64等,如图1.4所示,因此汉字的存储空间比西文要大很多,需要用大量的存储空间来存放字模。

注意,汉字在计算机内部都采用机内码表示,只需2个字节即可表示1个汉图1.3 7×5点阵字。而当汉字被输出时,若使用16×16点阵的表示方法,则需要16 bit×16=256 bit=32 Byte,即32个字节来存放1个汉字的字形码。

除了点阵字库,汉字还可以使用轮廓字库来描述。轮廓字库使用数学方程来描述字形,字形大小变化时不易失真,精度高,但技术较为复杂,例如Windows操作系统中的“TrueType”字体。图1.4 64×64点阵

习题一

1.叙述计算机发展的历史,说明各发展阶段的划分依据是什么,各个阶段的主要特点是什么。

2.什么是“摩尔定律”?

3.计算机为什么要采用二进制?

4.二进制数与八进制、十进制和十六进制数之间如何进行相互转换?

5.设字长为8位,分别写出+43、-7、127的原码、反码和补码。-128的补码呢?

6.已知某汉字的国际码是3A43H,则它的机内码是多少?已知某汉字的机内码是BD⁃CCH,它的区位码是多少?

7.已知一串字符串的机内码:CBFBCAC731B8F6D1A7C9FA2E,请问其中有几个汉字几个西文字符?

8.如果要存放10个24×24点阵的汉字字模,至少需要多少字节的存储空间?

2 计算机硬件系统

计算机硬件是由各种电子器件、印刷电路板、导线等构成的复杂系统,是计算机的物理实体,它提供了计算机工作的物质基础,用户通过硬件向计算机系统发出命令、输入数据并得到计算机的响应,从而完成相应的任务。计算机硬件的性能、档次从根本上决定了整个计算机系统的性能和档次。因此,学习和使用计算机时,首先要对计算机各个部件的功能及作用、工作原理有所了解,从而从整体上对计算机形成一个初步的认识。

2.1 计算机硬件系统的组成

自从1946年诞生了世界上公认的第一台电子数字计算机以来,计算机科学经历了半个多世纪的飞速发展。伴随着计算机应用领域的迅速扩大和深入、超大规模集成电路技术的发展,计算机的系统结构不断地得到改进,其性能成倍地提高。我们日常所使用的计算机均属于冯·诺依曼型计算机,也叫做“存储程序式计算机”。

存储程序式计算机由五大基本部分组成,它们是运算器、控制器、存储器、输入设备和输出设备,但人们习惯上把运算器和控制器看成是一个整体,称之为“中央处理器”(Central Processing Unit,CPU)。有时人们还将中央处理器、内存储器及相关的总线称为“主机”,相对地将外存储器、输入、输出设备称为“外部设备”,简称“外设”。图2.1为计算机硬件系统结构的示意图,由结构示意图可以看出,计算机硬件系统采用总线结构,各个部件之间通过总线相连构成一个统一的整体。图2.1 计算机硬件系统结构示意图

从外观上看,一台计算机通常由主机箱、显示器、键盘和鼠标组成,有时还配有打印机、音箱等其他外部设备,如图2.2所示。主机箱内有CPU、内存储器、外存储器(软盘存储器、硬盘存储器、光盘存储器)、主板、输入输出接口(显卡、声卡等)和总线扩展槽等部件。下面我们将详细介绍计算机的各个硬件部件。图2.2 计算机的外观配置

2.1.1 中央处理器

中央处理器是计算机的核心,它是计算机完成取指令、解释指令和执行指令的重要部件,主要完成各种算术及逻辑运算,并控制计算机各部件协调地工作。

在微型计算机系统中,CPU被集成在一片超大规模集成电路芯片上,称为微处理器。不同型号的计算机,其性能的差别首先在于其微处理器的性能,而微处理器的性能又与它自身的内部结构、硬件配置有关。目前市场上的CPU大多由Intel、AMD、IBM和威盛等公司生产,其中Intel公司约占80%的市场份额,AMD公司约占19%的市场份额。Intel的CPU从早期的X86系列发展到奔腾系列,现在已逐渐过渡到流行的酷睿系列;而AMD的CPU则从闪龙、速龙发展到羿龙系列。实际上,无论是Intel还是AMD公司,其系列产品已从早期的单核逐渐过渡到多核处理器。采用了多核的计算机,它的一个处理器上集成了更多的运算核心,所以性能和功能都有大幅度的提高和改进。

1)CPU基本结构

CPU内部从总体上讲主要包括三大部分,即寄存器组、运算器和控制器,它们通过CPU内部总线连接在一起,如图2.3所示。图2.3 CPU基本结构(1)寄存器组

寄存器组包括通用和专用寄存器组,按其字面意思可理解为是用来暂时存放数据的部件。这里的“数据”是广义的,它可以是参加运算的操作数或运算的结果,存放这类数据的寄存器称为“通用寄存器”;另外一类“数据”表征着计算机当前的工作状态,比如下面要执行哪一条指令,执行的结果具有哪些特征(如有无进位)等,存放这类数据的是“专用寄存器”。(2)运算器

运算器是计算机中执行各种算术和逻辑运算的部件,也称为“算术逻辑单元”(Arithmetic Logic Unit,ALU)。运算器的基本操作包括加、减、乘、除四则运算,与、或、非、异或等逻辑操作,以及移位、比较和传送等操作。计算机运行时,运算器的操作和操作种类由控制器决定。为了加快运算速度,许多CPU中还设置了多个单元,有的用于执行整数运算和逻辑运算,有的用于浮点运算。(3)控制器

控制器是统一指挥和控制计算机各个部件按时序协调操作的中心部件,主要用于完成指令的分析、指令及操作数的传送、产生和控制协调整个CPU工作所需要的时序逻辑等。控制器主要由程序计数器(Program Counter,PC)、指令寄存器(Instruction Register,IR)、指令译码器(Instruction Decode,ID)等部件组成。程序计数器用来存放将要执行的指令在主存储器中的存储地址,当一条指令执行结束后,PC的值一般会自动加1,指向下一条将要执行的指令。指令寄存器用来暂时存放从主存中取出的指令。指令译码器用来对指令进行译码,产生的译码信号识别了该指令要进行的操作,以便产生相应的控制信号。

2)CPU性能指标

CPU性能的高低直接决定了一个计算机系统的性能,而CPU的主要技术参数可以反映出CPU的基本性能。CPU的主要技术参数如下:(1)字长

字长指的是CPU能够同时处理的二进制数据的位数。如果一个CPU的字长为8位,它每执行一条指令可以处理8位二进制数据,如果要处理更多位数的数据,就需要执行多条指令。显然,字长越长,CPU的功能就越强,工作速度就越快,但其内部结构也就越复杂。早期的计算机产品是8位机和16位机,目前流行的主要是64位机。(2)主频

主频即CPU工作的时钟频率,单位是MHz,它决定着CPU内部数据传输与操作速度的快慢。CPU的工作是周期性的,它不断地执行取指令、执行指令等操作。这些操作需要精确定时,按照精确的节拍工作,因此CPU需要一个时钟电路产生标准节拍,一旦机器加电,时钟便连续不断地发出节拍,就像乐队的指挥一样指挥CPU有节奏地工作,这个节拍的频率就是主频。一般说来,主频越高,CPU的工作速度越快。由于各种CPU的内部结构不尽相同,所以并不能完全用主频来概括CPU的性能。至于外频,它是指系统总线的工作频率;而倍频则是指CPU外频与主频相差的倍数。主频、外频和倍频三者之间的关系是:主频=外频×倍频。(3)CPU总线宽度

CPU总线的工作频率和数据线宽度决定着CPU与内存之间传输数据的快慢,数据线宽度越宽,一次性传输的信息量就越大,CPU访问内存的时间就越短。(4)高速缓存

高速缓存的结构和大小对CPU速度的影响非常大,CPU内的缓存一般和处理器同频运作,其工作速度远远大于内存和硬盘。实际工作时,CPU往往需要重复读取同样的数据块,如果增大缓存的容量,即可以大幅度提升CPU内部读取数据的命中率,而不需到内存或硬盘上寻找,以此提高系统的性能。但从CPU芯片的面积和成本因素来考虑,缓存的容量一般都很小。(5)CPU扩展指令集

CPU依靠指令来计算和控制系统。早期的CPU只包含一些功能比较弱的基本指令,例如对浮点数的计算需要执行由更多基本指令组成的程序。随着制造技术的进步,后来的CPU在基本指令集里提供了很多复杂运算的指令,指令的种类增加了,CPU的处理能力也就相应增强了。

2.1.2 存储器

存储器是计算机的重要组成部分,其主要功能是存储程序和各种数据信息。根据存储器在计算机中位置的不同,可分为主存储器(Memory,也称为“内存储器”,简称“内存”)和辅助存储器(Auxiliary Storage,也称“外存储器”,简称“外存”)两大类。相对于外存来说,内存的存取速度较快,CPU能够直接访问,但容量小、价格高。目前内存由半导体存储器组成,外存常由磁性材料做成,如磁盘存储器(硬磁盘与软磁盘)及光盘存储器等。

1)内存储器

在计算机内部,直接与CPU交换信息的存储器称为内存,用来存放计算机运行期间所需的信息,如指令、数据等。内存在一个计算机系统中起着非常重要的作用,它的工作速度和存储容量对系统的整体性能、系统所能解决的问题的规模和效率都有很大的影响。(1)内存的分类

按照存取方式,内存可以分为随机存储器(Random Access Memory,RAM)和只读存储器(Read Only Memory,ROM)两大类。

①随机存储器

RAM具有两个显著的特点:一是可读可写的特性,读出时并不损坏原来存储的内容,只有写入时才修改原来所存储的内容;二是具有易失性,必须持续供电才能保持其数据,一旦供电中断,数据随即丢失,所以RAM适用于临时存储数据。

RAM可以分为动态(Dynamic RAM)和静态(Static RAM)两大类。DRAM的特点是集成度高,必须定期刷新才能保存数据,所以速度较慢,通常用DRAM做主存;SRAM的特点是存取速度快,制造成本高,主要用于高速缓冲存储器。

②只读存储器

ROM的特点是信息只能读出不能写入,计算机断电后,ROM中原有内容保持不变,重新加电后仍可读出。所以ROM适用于存放一些固定的程序和数据。按照ROM的内容能否改写,ROM可以分为以下四类:

●Mask ROM:由厂家在制造过程中将信息写入芯片,以后不能改变。

●PROM:根据用户需要,使用特殊装置将信息写入,写入后不能更改。

●EPROM:通过特殊装置将信息写入,但写之前需用紫外线照射,将所有存储单元擦除至初始状态后才可重新写入。

●Flash ROM:一种长寿命的非易失性的存储器,数据删除不是以单个的字节为单位而是以固定的区块为单位,区块大小一般为256KB到20MB。闪存通常用来保存设置信息,如计算机中的BIOS、数码相机等。

随着微电子技术的不断发展,CPU的主频不断提高,主存由于容量大、寻址系统繁多、读写电路复杂等原因,造成了其工作速度大大低于CPU的速度,直接影响了计算机的性能。为了解决这一矛盾,人们在CPU和主存之间增设了一级容量不大但速度很快的高速缓冲存储器(Cache,高速缓存),利用Cache存放常用的程序和数据。当CPU访问程序和数据时,首先从高速缓存中查找,如果所需程序和数据不在Cache中,则到主存中读取数据。因此,Cache的容量越大,CPU在Cache中找到所需数据或指令的概率就越大。

现代计算机一般都配有三级缓存。一级缓存叫主缓存或内部缓存,直接设计在CPU芯片内部,容量小。早期的二级缓存和三级缓存并没有集成在CPU中,而是在主板上或与CPU集成在同一块电路板上,因此被称为外部缓存。但随着工艺的提高,二级和三级缓存已逐渐被集成在CPU的内核中,所以在性能上与一级缓存没有太大的差别。当CPU需要指令或数据时,实际检索顺序是先缓存后内存。(2)内存的性能指标

内存分成一个个存储单元,每个存储单元存放一定位数的二进制数据。为了对内存进行有效的管理,需要对每个存储单元进行编号。内存单元采用顺序的线性方式组织,所有单元排成一对,排在最前面的单元编号为0,即其地址为0,其余单元的地址按顺序排列。由于地址的唯一性,CPU可以通过地址对内存单元进行访问。一个存储单元中存放的信息为该存储单元的内容,例如图2.4表示了存储器里存放信息的情况,可以看出2号单元中的内容为10110110。图2.4 存储单元的地址和内容

衡量内存的常用指标有存取速度和存储容量。内存的存取速度是指读或写一次内存所需要的时间,通常以ns来衡量,一般为1~10ns。只有内存与CPU速度、主板速度相匹配,才能发挥计算机的最大效率。内存的存储容量是指内存中有多少个存储单元,其容量实际是指主板插槽上内存条的容量,目前主流产品的容量在1G~4GB。图2.5为PC机中使用的内存条。

现阶段,内存的主要生产厂商有三星、金士顿、海盗船和威刚等。在选购内存条时,除了需要考虑品牌、容量外,还需注意内存的类型,目前计算机图2.5 内存条中的内存条大多数是DDR2和DDR3型的,而早期的DDR已逐渐被淘汰。

2)外存储器

通常,计算机中内存的容量总是有限的,不能满足存放数据的需要,而外存储器作为计算机中不可缺少的外部设备,是内存的延伸,其主要作用是长期存放计算机工作所需要的程序、文档和数据等。外存储器既可作输入设备又可作输出设备,它的特点是存储容量大、可靠性高、价格低,但不能被CPU直接访问。当CPU需要执行某部分程序和数据时,由外存调入内存以供CPU访问。

目前最常用的外存有软盘、硬盘、光盘和移动存储器等。(1)软盘存储器

软盘存储器由软盘盘片、软盘驱动器和软盘适配器三部分组成。软盘盘片是存储介质,软盘驱动器是读写装置,软盘适配器是软盘驱动器与主机连接的接口。目前计算机所配置的通用软盘驱动器大多数是3.5英寸的薄型软盘驱动器,适用1.44MB软盘(如图2.6所示)。

①软盘的存储原理

3.5英寸软盘盘片是软盘的核心,是记录数据的载体,表面涂着一层由铁氧化物构成的磁性材料。盘片在软盘驱动器中旋转并通过磁头来读写盘片的信息。写盘的过程是以电脉冲将磁头下方磁道上那一点磁化,而读盘的过程则是将磁头下方磁道上那一点的磁化信息转化为电信号,并通过电信号的强弱来判断为“0”还是“1”。

软盘上的写保护口主要用于保护软盘中的信息。一旦设置了写保护,就意味着只能从该软盘中读信息,而不能再往软盘上写信息。图2.6 3.5英寸软盘

②软盘的格式化

新软盘只有经过格式化后才可以使用。格式化是为存储数据做准备,在此过程中,软盘被划分成若干个磁道,磁道又被划分为若干个扇区,如图2.7所示。

③软盘的主要技术指标

●面数:只用一面存储信息的软盘称为单面软盘,而双面存储信息的软盘称为双面软盘。

●磁道:由外向内的一组同心圆。通常软盘的磁道数为80,最外面的是0号磁道,最里面的是79号磁道。

扇区:扇区是软盘的基本存储单位,通常一个磁道被划分成18个扇区,每个扇区的存

储容量为512B。

●容量:软盘所能存储数据的字节数,可由如下公式计算得出:

软盘的容量=记录面数×磁道数×扇区数×每扇区的字节数

例如,3.5英寸软盘的容量为:2×80×18×512B/(1024×1000)=1.44MB。图2.7 软盘盘片的磁道和扇区(2)硬盘存储器

硬盘是最重要的外存储器,用以存放系统软件、大型文件、数据库等大量程序与数据,它的特点是存储容量大、可靠性高、存取速度快。

①硬盘的结构和存储原理

硬盘一般由一组相同尺寸的磁盘片环绕共同的核心组成。这些磁盘片是涂有磁性材料的铝合金盘片,质地较硬,质量较好。每个磁面各有一个磁头,磁头在驱动马达的带动下在磁盘上做径向移动,寻找定位点,完成写入或读出数据的工作。硬盘驱动器通常采用温彻斯特技术,将硬盘驱动电机和读写磁头等组装并封装在一起,称为“温彻斯特驱动器”。硬盘结构如图2.8所示。图2.8 硬盘结构示意图

从图2.8可以看出,硬盘是由一组盘片组成,所有盘片的同一磁道共同组成了一个圆柱面,称为“柱面”。由此可知,硬盘容量=每扇区字节数×扇区数×磁道数×记录面数×盘片数。

②硬盘的格式化

硬盘格式化的目的与软盘格式化相同,但操作较为复杂。硬盘格式化一般分为低级格式化和高级格式化。

低级格式化

低级格式化是对硬盘进行初始化,目的是对硬盘重新划分磁道和扇区。低级格式化是在高级格式化之前进行的,它只能够在DOS环境下来完成,而且只能针对整块硬盘而不能针对单独的某一个分区。一般在以下这两种情况下需要对硬盘进行低级格式化:一是硬盘出厂前,硬盘厂商会对硬盘进行一次低级格式化;另一种是当硬盘出现某种类型的坏磁道时,使用低级格式化能起到一定的缓解或者屏蔽作用。

硬盘的高级格式化

高级格式化主要是对硬盘的各个分区进行磁道的格式化,即在逻辑上划分磁道。高级格式化有两个作用:一是装入操作系统,使硬盘兼有系统启动盘的作用;二是对指定的硬盘分区进行初始化,建立文件分配表以便系统按指定的格式存储文件。

③硬盘的技术指标

容量

作为计算机系统的数据存储器,容量是硬盘最主要的参数。硬盘的容量一般以千兆字节(GB)为单位,1GB=1024MB。但硬盘厂商在标称硬盘容量时通常取1GB=1000MB,因此我们在BIOS中或在格式化硬盘时看到的容量会比厂家的标称值要小。目前硬盘中一般有1~5个存储盘片,其所有盘片容量之和为硬盘的存储容量。

转速

转速是指硬盘盘片每分钟转动的圈数,单位为rpm。目前市场上主流硬盘的转速一般都已达到了7200 rpm的转速,而更高的则达到了10000 rpm。

平均寻道时间

硬盘的平均寻道时间是指硬盘的磁头移动到盘面指定磁道所需的时间,该时间越小,硬盘的工作速度则越快。目前硬盘的平均寻道时间通常在8 ms到12 ms之间。

平均等待时间

硬盘的平均等待时间是指磁头已处于要访问的磁道,等待所要访问的扇区旋转至磁头下方的时间。平均等待时间为盘片旋转一周所需时间的一半,一般应在4 ms以下。

数据传输率

硬盘的数据传输率是指硬盘读写数据的速度,单位为兆字节每秒(MB/s)。硬盘数据传输率又包括了内部数据传输率和外部数据传输率。内部传输率反映了硬盘在盘片上读写数据的速度,主要依赖于硬盘的旋转速度。外部传输率反映了系统总线与硬盘缓冲区之间的数据传输率,它与硬盘接口类型和硬盘缓存的大小有关。

缓存

与主板上的高速缓存一样,硬盘缓存的目的是为了解决系统读写速度不匹配的问题,以提高硬盘的读写速度。目前,大多数IDE硬盘的缓存在8MB左右。(3)光盘存储器

光盘是利用光学和电学原理进行读/写信息的存储介质,它是由反光材料制成的,通过在其表面上制造出一些变化来存储信息。当光盘转动时,上面的激光束照射已存储信息的反射表面,根据产生反射光的强弱变化识别出存储的信息,从而达到读出光盘上信息的目的。

目前光盘存储器已广泛地应用于计算机系统中,因为它具有如下优点:第一,存储容量大,例如一张CD-ROM格式的光盘可存储600MB左右的信息,而一张DVD格式的光盘的容量可达10GB,因此这类光盘特别适于多媒体的应用;第二,可靠性高,例如不可重写的光盘上的信息几乎不可能丢失,特别适用于档案资料的管理;第三,存取速度高,目前CD-ROM光驱的速度一般都在50倍速以上(单倍速是指每秒钟光驱的读取速率为150KB)。

常用的光盘存储器可分为下列几种类型:

①CD-ROM光盘

CD-ROM(Compact Disk Read Only Memory)是一种只读型光盘。它由生产厂家预先写入数据和程序,使用时用户只能读出,不能修改或写入新内容。与硬盘表面一组由同心圆组成的磁道不同,CD-ROM光盘有一条从内向外的、由凹坑和平坦表面互相交错组成的连续的螺旋线轨道,也就是说,数据和程序是以凹坑形式保存在光盘上的。

要读出光盘中的信息时,激光头射出的激光束透过表面的透明基片直接聚集在盘片反射层上,被反射回来的激光会被光感应器检测到。当激光通过凹坑时,反射光强度减弱,代表读出数据为“1”;而激光通过平坦表面时,反射光强度不发生变化,代表读出数据为“0”。光盘驱动器的信号接收系统负责把这种光强度的变化转换成电信号再传送到系统总线,从而实现数据的读取。

②CD-R光盘

CD-R(CD-Recorder)又称“只写一次型光盘”,这种光盘存储器的盘片可由用户写入信息,但只能写入一次,写入后的信息将永久地保存在光盘上,可以多次读出,但不能重写或修改。

③CD-RW光盘

CD-RW(CD-Rewritable)光盘存储器类似于磁盘,可以重复读写,其写入和读出信息的原理与使用的介质材料有关。例如,用磁光材料记录信息的原理是:利用激光束的热作用改变介质上局部磁场的方向来记录信息,再利用磁光效应来读出信息。

④DVD光盘存储器

最早出现的DVD(Digital Video Disk,数字视频光盘)是一种只读型光盘,必须由专门的影碟机播放。随着技术的不断发展,数字通用光盘(Digital Versatile Disk)取代了原先的数字视频光盘,其中每张光盘可存储的容量都可以达到4.7GB以上。

DVD的基本类型有DVD-ROM、DVD-Video、DVD-Audio、DVD-R、DVD-RW、DVD-RAM等。(4)可移动存储器

由于软盘存储容量较小,也较易损坏,目前正在逐渐被一种可移动的存储器所取代,这就是U盘和移动硬盘,如图2.9所示。图2.9 移动存储器

①闪存盘(U盘)

U盘采用一种可读写、非易失的半导体存储器——闪存作为存储介质,通过通用串行总线接口(USB)与主机相连,可以像使用软盘、硬盘一样在该盘上读写和传送文件。目前U盘的容量一般在64MB~16GB。U盘之所以被广泛使用是因为它具有许多优点:

●体积小、重量轻,便于携带。

●采用USB接口,无需外接电源,支持即插即用和热插拔,在Windows Me以上的操作系统中不用安装驱动程序就可以使用。

●存取速度至少比软盘快15倍,数据至少可保存10年,擦写次数可达10万次以上。

●抗震防潮性能好,还具有耐高低温等特点。

②移动硬盘

虽然U盘具有性能高、体积小等优点,但对需要存储较大数据量的情况,其容量就不能满足需求了,因而需要使用另一种可移动存储器——移动硬盘。与U盘相比,移动硬盘的特点是容量更大(40~250GB),传输速度更快。移动硬盘大多采用USB、IEEE1394接口,能提供较高的数据传输速率。目前USB2.0接口的传输速率是60 MB/s,IEEE1394接口的传输速率高达50~100 MB/s。

综上所述,在计算机中存储信息的设备有内存、硬盘、软盘、光盘、U盘等,每种存储设备都有其特点。为了充分发挥各种存储设备的长处,将其有机地组织起来,这就构成了具有层次结构的存储系统,如图2.10所示。图2.10 存储系统的层次结构

2.1.3 输入/输出设备

输入/输出设备是用户与计算机之间进行信息交流的主要设备。输入设备的功能是把用一定形式表示的程序和数据送入计算机,输出设备的功能是将计算机运算操作的结果转化为用户或其他设备能够接受和识别的信息形式。计算机的输入/输出设备种类繁多,不同设备可以满足人们使用计算机时的各种不同需要。下面介绍几种最常用的输入/输出设备。

1)输入设备

输入设备用于把原始数据和处理数据的程序输入到计算机中。现在的计算机能够接收各种各样的数据,既可以是数值型的数据,也可以是各种非数值型的数据,如图形、图像、声音等都可以通过不同类型的输入设备输入到计算机中。计算机的输入设备按功能可分为下列四类:

●字符输入设备:键盘、光笔。

●图形输入设备:鼠标、操纵杆、条形码阅读器。

●图像输入设备:数码相机、扫描仪。

●语音输入设备:语言模数转换识别系统。

下面主要介绍几种目前常用的输入设备,并简要说明它们的功能。(1)键盘

键盘是微型计算机的主要输入设备,是计算机常用的输入数字、字符的输入设备,通过它可以输入程序、数据、操作命令,也可以对计算机进行控制。

键盘由一组按键排成的开关阵列组成,按下一个键就产生一个相应的扫描码,不同位置的按键对应不同的扫描码。键盘上的按键可以划分成四个区域,具体排列如图2.11所示。图2.11 微型计算机键盘排列示意图

①功能键区:包含12个功能键F1~F12,这些功能键在不同的软件系统中有不同的定义。

②主键盘区:包含字母键、数字键、运算符号键、特殊符号键、特殊功能键等。

③副键盘区(数字小键盘区):包含10个数字键和运算符号键,另外还有回车键和一些控制键。所有数字键均有上、下两种功能,由数字锁定键(Num Lock)选择。

④控制键区:包含插入、删除、光标控制键、翻屏键等。

在主键盘区、控制键区和数字小键盘区有许多用于编辑或控制的功能键,其具体功能可参考第7章的表7.1。

PC机上的键盘接口有三种,一种是比较老式的直径13mm的PC键盘接口;二是直径8mm的PS/2键盘接口,现在这两种已基本淘汰;三是USB接口,USB接口的键盘已逐渐流行。(2)鼠标

鼠标是用于图形界面操作系统的快速输入设备,其功能主要用于移动显示器上的光标并通过菜单或按钮向主机发出各种操作命令,但不能输入字符和数据。

鼠标通常有两个按键,每个键的功能可以由软件来任意设定,一般左键用得较多。鼠标的操作包括两种:一种是鼠标的移动,另一种就是按键的按下和释放。当鼠标在平面上移动时,通过机械或光学的方法把鼠标移动的距离和方向转换成脉冲信号传送给计算机,计算机鼠标驱动程序将脉冲个数转换成鼠标的水平方向和垂直方向的位移量,从而控制显示屏上光标箭头随鼠标的移动而移动。

①鼠标的分类

鼠标可按照接口类型分为五类:PS/2接口的鼠标、串行接口的鼠标、USB接口的鼠标、红外接口的鼠标和无线接口的鼠标。PS/2鼠标用的是6针的小圆接口;串口鼠标用的是9针的D型接口;USB鼠标使用USB接口,具有即插即用特性;红外接口鼠标利用红外线与计算机进行数据传输;无线接口鼠标则通过无线电信号与计算机进行数据传输。后两种鼠标都没有连接线,故称为“遥控鼠标”,使用起来较为灵活,但红外接口鼠标使用时要正对着计算机,角度不能太大。

鼠标还可按其工作原理分为机械式、光机式和光电式三类。较早的鼠标是机械式的,但由于其准确性和灵敏度差,很快就被淘汰了。光机式鼠标结合使用了机械及光电原理,精确度比机械式鼠标高,但需要在平整表面上操作。目前最流行的是光电鼠标,在鼠标底部用一个图形识别芯片时刻监视鼠标与桌面的相对移动,根据移动情况发出位移信号,这种鼠标传输速率快,灵敏度和准确度高。

笔记本电脑的鼠标包括内置式和外置式两种。外置式鼠标与普通台式机鼠标相同。内置式鼠标按其工作原理分为指点杆式、触摸屏式、触模板式和轨迹球式。

②鼠标的主要技术参数

鼠标最重要的参数是分辨率,它以dpi(dots per inch,像素/英寸)为单位,表示鼠标移动1英寸所通过的像素数。一般鼠标的分辨率为150~200dpi,高的可达300~400dpi。当屏幕分辨率为640×480时,鼠标只要移动1英寸,则对应通过屏幕上300~400像素的位置,基本遍历了屏幕的2/3,因此鼠标的分辨率越高,鼠标移动距离就越短。(3)数码相机

数码相机是一种利用电子传感器把光学影像转换成电子数据的照相机,是一种重要的图像输入设备。传统相机使用胶卷作为记录信息的载体,而数码相机的“胶卷”则是成像感光器件。感光器件是数码相机的核心,也是最关键的技术。目前数码相机的核心感光器件有两种:一种是广泛使用的CCD(Charge Coupled Device,电荷耦合)元件,另一种是CMOS(Complementary Metal-Oxide Semiconductor,互补金属氧化物导体)元件。

CCD由一种高感光度的半导体材料制成,能把光线转变成电荷,然后通过模/数转换器芯片将电信号转换成数字信号,数字信号经过压缩处理由USB接口传到计算机上就形成所采集的图像。CMOS主要是利用硅和锗做成的半导体。CCD在影像品质等各方面均优于CMOS,但CMOS具有低成本、低耗电的特性。目前市场上绝大多数的中高端数码相机都使用CCD作为感光器,而CMOS感光器则作为低端产品应用于数字摄像头。

CCD中有很多相同的感光元件,每个感光元件称为一个“像素”,因此数码相机的像素和CCD的大小有密切的关系。现在市面上的消费级数码相机主要有2/3英寸、1/1.8英寸、1/2.7英寸、1/3.2英寸四种。CCD尺寸越大,感光面积越大,成像效果越好,但价格也越高。

衡量数码相机性能的重要参数是分辨率和存储容量。

●分辨率:单位为dpi,其数值大小将直接影响到最终图像的质量。常见的分辨率有640×480、1024×768、1600×1200、2048×1536,其中前者为水平分辨率,后者为垂直分辨率,长宽比一般为4:3,两者相乘即为图片的像素。图像的分辨率越高,那么图像的尺寸和体积都将越大。

●存储容量:数码相机采用存储卡(闪存)作为存储设备,即使断电也不会丢失信息。在图像分辨率和质量要求相同的情况下,存储容量越大,可存储的照片越多。

对于数码相机中图像分辨率的选择要根据自己的需要,不能一味的追求质量,或者单纯考虑存储卡容量,一切要从自身的需求出发。例如,印刷出版的图像的分辨率一般在500万(2560×1920)像素以上,而供计算机显示的图像的分辨率在1024×768左右。(4)扫描仪

扫描仪就是将照片、书籍上的文字或图片获取下来,以图片文件的形式保存在计算机里的一种设备,照片、文本页面、图纸、美术图画、照相底片等都可作为扫描对象。

①扫描仪的分类

根据扫描仪的工作原理,我们把扫描仪分为两种:滚筒式扫描仪和平板式扫描仪。滚筒式扫描仪输出的图像普遍具有色彩还原逼真、放大效果好的特点,但占地面积大、价格昂贵(是平板式扫描仪的5~50倍),市场上很少见到。而随着科技的不断进步,目前高、中档平板式扫描仪已具有滚筒式扫描仪的大多数优点,从而可以满足大多数的应用需求。

②扫描仪的性能指标

●分辨率:分辨率是扫描仪最主要的技术指标,它表示扫描仪对图像细节的表现能力,决定了扫描仪记录图像的细致度。通常用每英寸长度上扫描图像所含像素点的个数来表示扫描仪的分辨率。目前大多数扫描仪的分辨率在300~2400dpi之间。dpi数值相对越大,扫描的分辨率越高,扫描图像的品质就越高,但这并不意味着分辨率越高越好。当分辨率大于某一特定值时,只会使图像文件增大而不易处理,并不能对图像质量产生显著的改善。

●灰度级:灰度级表示图像的亮度层次范围。级数越多,扫描的图像的亮度范围越大,层次越丰富。目前多数扫描仪的灰度为256级。

●色彩数:色彩数表示彩色扫描仪所能产生颜色的范围,通常用描述每个像素点颜色的比特位(bit)表示,越多的比特位数可以表现越丰富的颜色。例如常说的真彩色图像指的是每个像素点由3个8比特位的红、绿、蓝彩色通道所组成,即24位二进制数表示的红、绿、蓝通道结合可以产生224种颜色的组合。

●扫描幅面:表示扫描图稿尺寸的大小,常见的幅面有A4、A3、A0等。

●扫描速度:扫描速度与分辨率、内存容量、图像大小等因素有关,通常用指定的分辨率和图像尺寸下的扫描时间来表示。

●与主机的接口:目前市场上的扫描仪有SCSI接口、USB接口和最新的IEEE1394接口,其中USB接口的扫描仪使用非常广泛。(5)光笔

键盘是一种重要的文字输入设备,因此用户需要熟悉汉字输入法才能快速地进行中文的输入。但随着现代电子技术的发展,人们已经研制出了手写输入方法,其代表产品就是光笔。光笔的原理是用一支与笔相似的定位笔(光笔)在一块与计算机相连的书写板上写字(如图2.12所示),根据压敏或电磁感应将笔在运动中的坐标位置不断送入计算机,使得计算机中的识别软件通过采集到的笔的轨迹来识别所写的字,然后再把得到的标准代码作为结果存储起来。因此手写输入的核心技术是识别软件,软件的识别率越高,就越能快而准确地得到所写的汉字。图2.12 光笔

2)输出设备

输出设备(Output Device)是用户与计算机交互的一种部件,用于数据的输出。它把各种信息以数字、字符、图像、声音等形式表示出来。常见的输出设备有显示器、打印机、绘图仪和语音输出系统等。

下面简要介绍常用的输出设备(显示器、打印机和绘图仪)的基本工作原理及性能指标。(1)显示器

显示器是计算机系统中最基本的输出设备,它是用户操作计算机时传递各种信息的窗口。显示器能以数字、字符、图形、图像等形式显示各种设备的状态和运行结果,从而建立起计算机和用户之间的联系。最常用的显示器有两种类型:阴极射线管(Cathode Ray Tube,CRT)显示器和液晶显示器(Liquid Crystal Display,LCD)。阴极射线管显示器具有分辨率高、可靠性高、速度快、成本低等优点,曾经是图形显示器中应用最广泛的一种。但随着科学技术的发展,目前的液晶显示器可以达到较高的分辨率,在色彩的丰富程度和细腻程度上都可以与CRT显示器媲美,而且液晶显示器重量轻、体积小、功耗低、辐射小,是一种日益流行的显示设备。

①显示器的硬件工作原理

CRT显示器屏幕上的光点是由阴极电子枪发射的电子束打击荧光粉薄膜而产生的。彩色CRT显示器的显像管的屏幕内侧是由红、绿、蓝三色磷光体构成的小三角形(像素)发光薄膜。由于接收的电子束强弱不同,像素的三原色发光强弱就不同,就可以产生一个不同亮度和颜色的像素。当电子束从左向右、从上而下地逐行扫描荧光屏时,每扫描一遍,就显示一屏,称为刷新一次,只要两次刷新的时间间隔少于0.01s,那么人眼在屏幕上看到的就是一个稳定的画面。

LCD显示器的原理与CRT大不相同,它是利用液晶的物理特性,在通电时导通,使液晶排列变得有秩序,使光线通过;不通电时,排列则变得混乱,阻止光线通过。

②显示器的主要技术参数

屏幕尺寸:屏幕尺寸是指矩形屏幕的对角线长度,以英寸为单位。现在使用较多的是17、19、22英寸等。传统显示屏的宽度与高度之比为4:3,而宽屏液晶显示器的屏幕比例还没有统一的标准,常见的有16:9和16:10两种。值得注意的是,在相同屏幕尺寸下,无论是16:9还是16:10的宽屏液晶显示器,其实际屏幕面积都要比普通的4:3液晶显示器要小。

●点距:点距是不同像素的两个颜色相同的磷光体间的距离。点距越小,显示出来的图像越细腻,分辨率越高。目前多数显示器的点距为0.28 mm。

●像素:像素是指屏幕上能被独立控制其颜色和亮度的最小区域,是显示画面的最小组成单位。一个屏幕像素点数的多少与屏幕尺寸和点距有关。例如,14英寸显示器的横向长度是240 mm、点距为0.31 mm,则横向像素点数是774个。

●分辨率:分辨率是指整屏可以显示的像素个数。通常写成水平分辨率×垂直分辨率的形式,例如320×200、640×480、800×600、1024×768。分辨率越高,屏幕上显示的图像像素越多,那么显示的图像就越清晰。显示分辨率通常和显示器、显卡有密切的关系。

●刷新频率:刷新频率是指每秒屏幕画面更新的次数。刷新频率越高,画面闪烁越小。一般在1024×768的分辨率下要达到75Hz的刷新频率,这样人眼不易察觉刷新频率带来的闪烁感。

③显卡

显卡是显示器与主机通信的桥梁,是显示器控制电路的接口。显卡负责把需要显示的图像数据转换成视频控制信号,从而控制显示器显示该图像。因此,显示器和显卡的参数必须相当,只有二者匹配合理,才能达到最理想的显示效果。

显卡通过接口与主板相连,该接口决定着显卡与系统之间数据传输的最大带宽,也就是瞬间所能传输的最大数据量,因而不同的接口能为显卡带来不同的性能。显卡发展至今共出现ISA、PCI、AGP等几种接口,所能提供的数据带宽依次增加。而采用新一代的PCI-E接口的显卡也在2004年正式推出,从而使显卡的数据带宽得到进一步的增大,解决了显卡与系统数据传输的瓶颈问题。目前一些性能较好的显卡还具有图形加速功能,它拥有自己的图形函数加速器和显示存储器(Video Random Access Memory,VRAM),其主要功能是使图形显示速度加快。

显卡分为集成显卡和独立显卡,在品牌机中采用集成显卡和独立显卡的产品约各占一半,在低端的产品中更多的是采用集成显卡,在中、高端市场则较多采用独立显卡。独立显卡是指显卡成独立的板卡存在,需要插在主板的AGP接口上,它具备单独的显存,不占用系统内存,而且技术上领先于集成显卡,能够提供更好的显示效果和运行性能。集成显卡是将显示芯片集成在主板芯片组中,在价格方面更具优势,但不具备显存,需要占用系统内存。其实集成显卡基本能满足普通的家庭、娱乐、办公等方面的应用需求,但如需进行3D图形设计或是图形方面的专业应用,那么独立显卡将是最好的选择。(2)打印机

打印机是仅次于显示器的一种重要输出设备,用户经常利用它将计算机中的文档、数据信息打印出来。

①打印机的分类

打印机的种类繁多,分类方法也很多。按照打印机的工作原理,可以分为击打式打印机和非击打式打印机。击打式打印机是利用打印针撞击色带和打印纸打出点阵,组成字符或图形。非击打式打印机是使用各种物理或化学的方法印刷字符,如激光扫描、喷墨、热敏效应等。目前市场上有常用的有针式打印机、激光打印机和喷墨打印机,另外还有用于高级印刷的热升华打印机、热蜡打印机等。

针式打印机属于击打式打印机,激光打印机和喷墨打印机属于非击打式打印机。目前市场上流行的针式打印机一般有24根针头,通过调整打印头与纸张的间距,可以适应打印纸的厚度,而且可以改变打印针的力度,以调节打印的清晰度。针式打印机具有价格便宜、耐用、穿透能力强、能够多层套打等优点,广泛用于银行、税务等部门的票据和报表类打印。但针式打印机的打印质量不高,而且噪音较大,所以很少用在在普通家庭及办公应用中。

激光打印机的原理类似于静电复印机,是将微粒炭粉固化在纸上而形成字符和图形,打印质量好,速度很快,噪音小,但对纸张质量有一定的要求。激光打印机的分辨率很高,有的可以达到600dpi以上,打印效果精美细致,但其价格相对较高,所以常用于办公应用中。目前激光打印机逐渐趋于智能化,它没有电源开关,平时自动处于关机状态,当有打印任务时自动激活。它有自己的内存和处理器,能单独处理打印任务,大大减轻了计算机的负担。激光打印机也有宽行、窄行及彩色、黑白之分,但宽行和彩色机型都很昂贵,所以用于打印A4单页纸的窄行黑白机型是目前比较普遍使用的。

喷墨打印机是靠喷出的细小墨滴来形成字符或图形的,它噪音小,价格便宜,能够输出彩色图像,而且打印速度相对较快。但喷墨打印机也有它的不足之处,就是对纸张有要求,而且消耗的墨水多,墨水的成本也较高,因此喷墨打印机对一般用户而言有“买得起,用不起”的感觉。

②打印机的性能指标

了解打印机的性能指标对于正确选择和使用打印机是很重要的。打印机的主要性能指标有以下几个方面:

●分辨率:分辨率用dpi表示,即每英寸打印点数。分辨率越高,图像清晰度就越好。针式打印机分辨率较低,一般为180~360dpi,激光打印机为300~2880dpi,喷墨打印机一般为300~1440dpi。

●打印速度:针式打印机的速度用每秒打印字符数(Characters Per Second,CPS)表示,一般为100~200 CPS;而激光打印机和喷墨打印机的打印速度以每分钟打印页数(Pages Per Minute,PPM)表示,一般在几PPM到几十PPM。

●打印幅面:打印幅面就是打印机所能打印的纸张的大小。对于针式打印机而言,规格有两种:80列和132列,即每行可打印80个或132个字符。对激光打印机和喷墨打印机而言,幅面一般为A3、A4和B4。

●打印缓冲存储器:打印缓冲存储器的存在是为了满足高速打印和打印大型文件的需要,缓冲存储器的大小将影响打印速度。针式打印机的缓冲存储器一般为16KB。喷墨打印机和激光打印机打印时需要整页装入,因此其缓冲存储器较大,一般为4~16 MB。

●接口类型:打印机接口类型主要有并行接口、串行接口和USB接口三种。并行接口一次可以传输一个字节,串行接口一次只能传输一个二进位,而目前流行的USB接口依靠其支持热插拔和输出速度快的特性,在各类打印机接口中应用最为广泛。(3)绘图仪

绘图仪是一种输出设备,它能按照用户要求将计算机的输出信息以图形的形式精确地输出,主要用于绘制各种管理图表、统计图、工地测量图、建筑设计图、电路布线图、机械图和计算机辅助设计图等。绘图仪一般由驱动电机、插补器、控制电路、绘图台、笔架、机械传动等部分组成。绘图仪除了必要的硬件设备之外,还必须配备丰富的绘图软件,只有软件与硬件结合起来,才能实现自动绘图。

①绘图仪的分类

绘图仪的种类很多,分类方法也很多。从工作原理上来划分,绘图仪可以分为笔式、喷墨式、热敏式、静电式等;而从结构上划分,又可以分为平台式和滚筒式两种。绘图仪在计算机辅助设计(CAD)与计算机辅助制造(CAM)中应用非常广泛,它能将图形准确地绘制在图纸上,供工程技术人员参考。目前的绘图仪已经智能化,它自身带有微处理器,具有直线和字符演算处理等功能。

②绘图仪的性能指标

●打印速度:打印速度是指单位时间内能够完成的打印面积,一2般用m /hr(平方米/小时)来表示。目前主流的绘图仪的打印速度基2本上在10~20m /hr之间。与绘图仪的打印速度最直接相关的因素是喷头上喷嘴的数量,一般来说,同一品牌的打印机,喷头上喷嘴的数量越多,打印的速度越快,同时打印质量也相对较高。

●分辨率:分辨率是绘图仪最基本的一个技术指标,一般用dpi表示,即每一个平方英寸可以表现出多少个点,它直接关系到产品输出的文字和图像质量的高低。分辨率一般用垂直分辨率×水平分辨率表示,如720×1440dpi。分辨率越高,数值越大,就意味着产品输出的质量越高。

●幅面尺寸:幅面尺寸有许多种,如滚筒式绘图仪的绘图纸有两种规格:一种是宽270 mm,长36 m;另一种是宽750 mm,长50 m。平台式绘图仪的绘图纸幅面的大小则受机器平台幅面的限制。

●接口类型:有USB接口、SCSI接口和最新的IEEE1394接口。

2.1.4 主板

主板,又叫“系统板”或“母板”,它安装在机箱内,是计算机系统中最大的一块电路板。主板几乎集中了系统的主要核心部件,通常安装了CPU插槽、内存储器插槽、控制芯片组、总线扩展槽、外设接口、CMOS和BIOS控制芯片等。目前市场上有华硕、技嘉、微星和七彩虹等品牌的主板,图2.13为华硕主板的结构示意图。

主板有两个主要功能:一是为CPU、内存和各种功能卡提供插槽;二是为各种常用外围设备(硬盘、鼠标、键盘等)提供通用接口。计算机系统通过主板将CPU等各种部件有机地结合起来形成一套完整的系统,因此主板的性能在相当程度上决定了计算机的整体运行速度和稳定性。图2.13 华硕主板结构示意图

1)芯片组

芯片组(Chipset)是主板的核心组成部分,如果说中央处理器(CPU)是整个计算机系统的心脏,那么芯片组将是整个系统的躯干。就目前流行的主板结构来说,芯片组一般由两个超大规模集成电路芯片组成,按照它们在主板中的不同位置,通常把这两个芯片分别称做“南桥芯片”(South Bridge)和“北桥芯片”(North Bridge)。其中CPU的类型、主板的系统总线频率、内存类型、容量和性能、显卡插槽规格等是由北桥芯片决定的,而扩展槽的种类与数量、扩展接口的类型和数量等是由南桥芯片决定的。随着技术的发展,不少芯片还纳入了3D加速显示(集成显示芯片)等功能,因而芯片组也决定着计算机系统的显示和音频播放等性能。

由于目前市场上CPU的型号与种类繁多、功能特点不一,如果芯片组不能与CPU良好地协同工作,将严重地影响计算机的整体性能,甚至不能正常工作。另外,芯片组被固化在主板上,不能像CPU、内存等进行简单的升级换代,因此在选购计算机时一定要注意CPU与芯片组性能的匹配。

2)基本输入/输出系统BIOS和CMOS

基本输入/输出系统(Basic Input Output System,BIOS)是一组固化在计算机内主板ROM芯片上的程序,主要负责对基本I/O系统进行控制和管理,使用BIOS设置程序还可以排除系统故障或诊断系统问题。BIOS程序包含以下四个模块。(1)加电自检程序:计算机接通电源后,系统将有一个对内部各个设备进行检查的过程,这是由加电自检(Power On Self Test,POST)程序来完成的。完整的POST自检将包含对CPU、内存、ROM、主板、存储器、串口、并口、显卡、硬盘等进行测试。自检中若发现问题,系统将给出提示信息或鸣笛警告。(2)系统自举程序:在完成加电自检后,BIOS将按照系统CMOS设置中的启动顺序搜寻软盘、硬盘驱动器、CD-ROM等有效的启动驱动器,读入操作系统引导程序,然后将系统控制权交给引导程序,由引导程序完成系统的启动。(3)CMOS程序:计算机中的CPU、软硬盘驱动器、显示器、键盘等部件的配置信息是放在一块可读写的CMOS RAM芯片中的。关机后,系统通过一块后备电池向CMOS供电以保存其中的信息。另外用户还可以利用CMOS来设置系统的日期、时间或口令等。用户在系统自举之前,一般按下Del键(或F2或F8键,各种BIOS规定不同)就可以进入CMOS设置状态。(4)基本外围设备的驱动程序:硬盘、软盘、光驱、键盘等常用外围设备的控制程序。

3)插槽和外设接口

除了芯片组、BIOS和CMOS之外,主板上还有一系列的插槽和接口。(1)CPU插槽

CPU插槽用于连接CPU芯片。由于CPU集成了越来越多的功能,使引脚数量不断增加,插槽尺寸也越来越大。(2)内存条插槽

主板上一般有若干个内存条插槽,插入相应的内存条就可构成一定容量的内存储器,实现内存的扩充,但内存的容量并不可以无限扩充,它会受到芯片组的制约。(3)总线扩展槽

主板上有一系列的扩展槽,用来连接各种功能的插卡,常见的有AGP、PCI、PCI-E等插槽。用户可以根据自己的需要在扩展槽上插入各种用途的插卡,如显卡、声卡、网卡等,以扩展计算机的各种功能。这些插槽所传送的信号实际上是系统总线信号的延伸,任何插卡插入扩展槽后,就可以通过总线与CPU连接,在操作系统的支持下实现即插即用,这种开放的体系结构为用户连接各种功能设备提供了方便。(4)I/O接口

主板上配置了很多外围设备的接口,例如有串行和并行接口插座、连接硬盘的电缆插座以及鼠标/键盘接口等。

2.1.5 总线与接口

在计算机系统中,CPU、存储器、各种输入设备之间需要通过总线把各部分组织起来,组成一个能彼此传输信息和对信息进行加工处理的整体。由于主机与I/O设备之间的相对独立性,它们之间一般不能直接连接,所以需要通过起“转换器”作用的接口才能实现连接。

1)总线

计算机中的各个部件,包括CPU、内存储器、外存储器和I/O设备的接口,它们之间是通过一条公共信息通路连接起来的,这条信息通路就称为“总线”。总线可以将信息从一个或多个源部件传送到一个或多个目的部件,如图2.14所示。(1)总线的分类图2.14 微型计算机总线结构示意图

①数据总线、地址总线和控制总线

根据总线上传送信息的不同,可将总线分为三类:数据总线DB(Data Bus)、地址总线AB(Address Bus)和控制总线CB(Control Bus)。

数据总线用于CPU与主存储器、CPU与I/O接口之间传送信息,它是双向的传输总线。数据总线的宽度决定每次能同时传输信息的位数,是决定计算机性能的主要指标。

地址总线主要用来指出数据总线上源数据或目的数据在主存储单元或I/O端口的地址,它是单向传输总线。地址总线的位数决定了CPU可直接寻址的内存空间大小,比如16位微型机的地址总线为2020位,其可寻址空间为2 =1MB。一般来说,若地址总线为n位,则可n寻址空间为2字节。

控制总线用来传送控制信号和时序信号。控制信号中,有的是微处理器送往存储器和I/O接口电路的,也有的是其他部件反馈给CPU的,因此控制总线的传送方向由具体控制信号决定。

②内部总线、系统总线和外部总线

根据总线的位置和功能不同,总线可以分为内部总线、系统总线和外部总线。内部总线是CPU与外围芯片(包括内存)之间连接的总线,用于芯片一级的互连;系统总线是各接口卡与主板之间连接的总线,用于接口卡一级的互连;外部总线是主机和外部设备之间的连线,用于设备一级的互连。在这三类总线中,系统总线是最重要的,所以我们通常所说的总线就是指系统总线。

对于微型计算机来说,目前常见的系统总线有ISA总线、PCI总线、AGP总线、PCI-E总线。ISA总线在80286~80486时代应用非常广泛,以至于现在一些奔腾机中还保留其总线插槽,主要是一些老式的接口卡插槽,如10Mb/sISA网卡、ISA声卡等。PCI总线是Intel推出的32/64位标准总线,32位PCI总线的数据传输速率为133MB/s,能满足声卡、网卡、视频卡等绝大多数输入/输出设备的需求,逐步取代了ISA。AGP总线是为提高视频带宽而设计的总线规范,专用于连接主板上的控制芯片和AGP显示适配卡,数据传输速率可达2.1GB/s,目前大多数主板均有提供。但随着显卡芯片的更新速度加快,高端显卡对总线的要求越来越高,出现了替代PCI总线的PCI-E总线。PCI-E总线的数据传输速率可达10GB/s,目前性能较好的主板上都配置了PCI-E总线插槽。图2.15为多总线结构的计算机示意图。图2.15 多总线结构示意图(2)总线的性能指标

①总线位宽:总线位宽指总线能同时传送的数据位数,即数据总线的位数,用位(bit)表示,如总线位数为8位、16位、32位和64位。

②总线工作频率:总线工作频率也称为总线的时钟频率,以MHz为单位。例如PCI总线有33.3MHz、66.6MHz两种总线工作频率。

③总线带宽:总线带宽是指单位时间内总线上可传送的最大数据量,单位为MB/s,它与总线位宽和总线工作频率有关,即总线带宽(MB/s)=(总线工作频率×总线位宽×每个总线周期的传输次数)/8。由此可见,总线位宽越大,总线工作频率越高,则总线传输速率越快。例如PCI总线工作频率为33.3MHz,总线位数为32位,则总线带宽为32b/8×33.3 MHz=133.2MB/s。

2)I/O接口

I/O接口是一组电子电路,它是CPU和I/O设备之间交换信息的媒介和桥梁,负责实现CPU通过系统总线把I/O电路和外围设备联系在一起。按照电路和设备的复杂程度,I/O接口的硬件主要分为两大类:一类是I/O接口芯片,这些芯片大都是集成电路,如鼠标、键盘等设备的控制器都集成在主板上的芯片内;另一类是I/O接口控制卡,由若干个集成电路按一定的逻辑组成一个部件,插在主板的扩充槽内,如显卡、声卡、网卡等。但是,为了降低PC机的成本,缩小机器的体积,目前已有不少机器的声卡、显卡已经集成到主板上。(1)I/O接口的功能

由于计算机的外围设备品种繁多,特性各异,每种设备都有各自的接口。不同种类的外设的接口的组成和任务各不相同,但它们能实现的功能大致是相同的,各种接口都必须具有下列基本功能:

①实现数据缓冲,在外设接口中设置若干个数据缓冲寄存器,在主机与外设交换数据时,先将数据暂存在该缓冲器中,然后输出到外部设备或输入到主机;

②“记录”外设工作状态并“通知”主机,为主机管理外设提供必要信息,外设的工作状态一般可分为“空闲”、“忙”和“结束”三种;

③能够接收主机发来的各种控制信号,独立地控制I/O设备的操作;

④实现主机与外设之间的通信控制,包括同步控制、中断控制等。(2)常用的I/O接口标准

在PC机中有多种不同的I/O接口,它们在接口的信号线定义、传输速率、传输方向、拓扑结构、电气和机械特性等方面都有自己的特性。PC机中常见的接口标准有IDE接口、USB接口、显示器输出接口等,图2.16显示的是机箱背面的I/O接口。图2.16 PC机箱背面的I/O接口

①IDE接口和SATA接口

IDE接口主要用于连接硬盘、光驱和软驱,采用并行双向传送方式,体积小,数据传输快。SATA接口采用串行方式传输数据,是一种不同于并行IDE的新型硬盘接口类型。SATA接口的数据传输速率比IDE接口的要快,目前市场上大多数的硬盘都采用SATA接口。

②COM接口(串口)和LPT接口(并口)

目前大多数主板都提供了两个COM接口,分别为COM1和COM2,作用是连接串行鼠标和外置Modem等设备。LPT口一般用来连接打印机或扫描仪,它采用25脚的DB-25接头。

③PS/2接口

PS/2接口的功能比较单一,仅能用于连接键盘和鼠标。一般情况下,鼠标的接口为绿色,键盘的接口为紫色。PS/2接口的传输速率比COM接口的稍快一些。

④显示器输出接口

显示器输出接口是计算机与显示器之间的桥梁,它负责向显示器输出相应的图像信号。目前主流产品有VGA和DVI两种接口标准。VGA是输出模拟信号的接口,而DVI接口可兼容模拟和数字信号,它的传输速率快,画面清晰,因此DVI接口的普及将是数字时代的必然发展趋势。

⑤USB接口

通用串行总线USB(Universal Serial Bus)不是一种新的总线标准,而是应用在PC领域的新型接口技术。最早的USb.0是1996年出1现的,速度只有1.5Mbps;两年后升级为USb.1,速度提升到12Mbps,1不过目前只有部分旧设备才使用这种接口;2000年4月推出了USb.0,2向下兼容USB1.1,速度达到了480Mbps,可支持数字摄像设备、扫描仪、打印机及移动存储设备,这是目前计算机与外设广泛采用的标准。随着计算机技术的发展,USb.0的速度已经不能满足应用需求,2USb.0也就应运而生,最大传输带宽高达5.0Gbps,也就是625MB/3s。USb.0的速度虽快,但目前常见的Windows XP操作系统并不支持3该接口,而Windows Vista和Windows 7可支持该接口。

目前USB接口已经在PC机的多种外设上得到应用,包括扫描仪、数码相机、数码摄像机等。USB之所以能得到广泛支持和快速普及,是因为它具备以下特点:

●使用方便:USB接口允许外设热插拔,而不必关闭主机电源,同时能真正做到即插即用;

●数据传输速率快:标准并行接口的数据传输率为1Mb/s,串行接口的数据传输率仅为并行接口的1/8,而USB2.0接口的最高传输率目前可达480Mb/s。

●连接灵活:USB接口支持多个不同设备的串列连接,一个USB口理论上可以连接127个USB设备,连接的方式也十分灵活,既可以使用串行连接,也可以使用中枢转接头实现多个设备的连接。

●独立供电:USB接口提供了内置电源,能向低压设备提供+5V的电源,能从主板上获得500mA的电流。

⑥IEEE1394接口

继USB之后,IEEE 1394接口技术正在步入市场领域,这种新型的接口比USB功能更为强大。IEEE 1394是一种高效的串行接口标准,中文译为“火线接口”。同USB一样,IEEE1394也支持即插即用和热插拔,也可为外设提供电源,但一个IEEE1394接口最多能连接63个不同设备。

目前IEEE1394接口可以应用于较高带宽的场合,如打印机、扫描仪、数码相机、数码摄像机、视频会议系统及数字电视等,由此可见,IEEE1394的应用不仅仅局限于PC机领域,还将扩展到通信和信息家电领域。

⑦红外线接口

红外线接口用来取代点对点的线缆连接,可以连接无线键盘、无线鼠标等设备,可以使手机和计算机间实现无线传输数据,还可以在具备红外接口的设备间进行信息交流。

2.2 计算机的工作原理

当用户用计算机完成某一计算或解决某一特定任务时,必须事先编写程序。程序告诉计算机需要完成哪些任务,按什么步骤去做,并提供所要处理的数据。简单地说,计算机工作的过程就是执行程序和处理数据的过程。在计算机内部,程序是由一系列指令组成的,指令是构成程序的基本单位。

2.2.1 指令和指令系统

指令是指向计算机发出的能被计算机理解的命令,它能使计算机执行一个最基本的操作。指令全部由二进制编码“0”和“1”组成。

指令一般都由操作码和操作数两部分组成。操作码指出指令完成哪一种操作,如加、减、乘、除或传送等。操作数则指出参加操作的数据在主存中的存放位置。一条指令只能完成一个简单的动作,一个复杂的操作需要由许多简单的操作组合而成。

一台计算机能够识别的所有指令的集合称为计算机的指令系统。计算机的指令系统完备与否决定了该计算机处理数据的能力。不同的计算机系统通常都具有自己特有的指令系统,其指令在格式上也会有一些区别。

1)指令的执行过程

计算机完成某一任务的过程就是执行指令的过程。在程序运行之前,首先将程序和原始数据输送到计算机内存储器中,然后按照指令的顺序依次执行指令。计算机执行一条指令的过程可以粗略地分为几个基本的步骤:(1)取指令:从内存储器中取出要执行的指令送到CPU内部的指令寄存器中;(2)分析指令:把保存在指令寄存器中的指令送到指令译码器,译出该指令对应的操作以及参加操作的操作数的位置;(3)取操作数:根据操作数的位置取出操作数;(4)执行指令:运算器按照操作码的要求对操作数完成规定的运算,并把运算结果保存到指定的寄存器或内存单元;(5)修改PC:对程序计数器进行修改,决定下一条指令的地址。

总之,计算机的基本工作过程可以概括为取指令、分析指令、取操作数、执行指令、修改PC,然后再取下一条指令,如此周而复始,直到遇到停机指令或外来事件的干预为止,其过程如图2.17所示。图2.17 指令执行过程

2)指令类型

一台计算机的指令系统可以由上百条指令组成,这些指令按其功能可以分成六类:(1)算术运算类:执行加、减、乘、除等算术运算的指令;(2)逻辑运算类:执行或、与、非、移位、比较等逻辑运算的指令;(3)数据传送类:执行取数、存数、传送等操作的指令,是指令系统中最基本的一类指令;(4)程序控制类:执行无条件转移、条件转移、调用程序、返回等操作的指令;(5)输入/输出类:执行输入、输出等实现内存和外部设备之间传输信息操作的指令;(6)其他类指令:执行停机、空操作、等待等操作的指令。

3)指令的兼容性

某一类计算机中的程序能否在其他计算机上运行就是计算机指令的“兼容性”问题。一般来说,不同公司生产的CPU产品不能相互兼容。比如,Intel公司的PC机采用Pentium系列处理器,而苹果公司的计算机采用Power架构的处理器,两者的指令系统大相径庭,因此无法相互兼容。但Intel公司和AMD公司生产的CPU产品的指令系统几乎一致,可以相互兼容。

对于同一公司的不同系列产品,如Intel公司的产品经历了8088→80286→80386→80486→Pentium→PentiumII→PentiumIII→PentiumIV→PentiumD→Pentium至尊版→酷睿阶段的发展,从整体上来看,它们具有相同的基本结构和基本指令集。但由于各种机型推出的时间不同,在结构和性能上也有所差异,因此做到所有产品都完全兼容是不可能的。一般来说,对于同一公司的产品,通常采用“向下兼容”的原则,即新类型的处理器包含旧类型处理器的全部指令,从而保证在旧类型处理器上开发的系统能够在新的处理器中被正确运行。

2.2.2 计算机的工作原理

计算机硬件种类繁多,在规模、处理能力、价格、复杂程度和设计技术等方面都有很大的差别,但到目前为止各种计算机的原理都是相同的。美国数学家冯·诺依曼(Von Neumann)于1946年提出了“存储程序控制计算机”的设想,确定了计算机的基本结构和工作方式。

1)计算机的基本结构

冯·诺依曼计算机的体系结构应包括运算器、控制器、存储器、输入设备和输出设备这五大基本功能部件,各个部件通过总线相连,其基本结构如图2.18所示。运算器用于完成各种运算,存储器用于保存数据和程序,输入设备用于从外部读入数据,输出设备用于将计算结果显示或打印出来,控制器用于控制各部件协调地进行工作。图2.18 计算机基本结构

2)采用二进制形式表示数据和程序

对于冯·诺依曼体系结构的计算机,数据和程序都是以二进制形式存储在存储器中的。早期的计算机为了符合人们使用十进制的习惯,往往设计复杂。冯·诺依曼提出任何数据都可以用二进制表示,这大大简化了计算机的结构,提高了运算速度。

3)采用存储程序控制方式

存储程序是冯·诺依曼思想的核心内容。存储程序控制原理是指人们把要解决的各种问题先编制成程序,然后通过输入设备送入计算机的存储器中。程序及其处理的数据在存储器中都使用二进制表示。计算机工作时,从存储器中取出每条指令,加以分析和识别,然后按照每条指令规定的功能执行相应的操作。计算机执行完一段程序后,将获得的处理结果保存到存储器中,或者通过输出设备输出。

60多年来,尽管计算机以惊人的速度发展,但就结构原理来说,目前绝大多数计算机仍建立在“存储程序”概念的基础上。当然,冯·诺依曼结构计算机也存在一些缺点,它在并行处理、知识处理方面的性能较低。目前已出现了一些突破冯·诺依曼结构的计算机,统称“非冯·诺依曼结构计算机”,如数据驱动的数据流计算机、需求驱动的归约计算机和模式匹配驱动的智能计算机等。

习题二

1.冯·诺依曼体系结构计算机的工作原理是什么?

2.计算机硬件由哪几部分组成?各部分的功能是什么?

3.主板上主要包含哪些部件?它们分别具有哪些功能?

4.简述硬盘的主要性能指标。

5.写出你所使用的计算机硬件的基本配置。

3 计算机软件

一个完整的计算机系统由两部分组成:计算机硬件和计算机软件。计算机硬件是组成计算机的各种物理设备的总称。计算机软件是用户与硬件的接口,能指示(指挥)计算机完成特定任务的以电子格式存储的程序、数据和相关文档。

软件和硬件是密不可分的。没有软件的硬件机器称为“裸机”。软件的功能可以用硬件加以实现,硬件的功能也可以用软件来加以模拟。如果我们把计算机比作一个人,那么硬件是人的躯体,而软件则是人的灵魂。虽然没有软件的硬件可以工作,但处理能力有限,软件可以在某种程度上拓展硬件的功能,从而使硬件的处理能力大大提高。

3.1 什么是计算机软件

3.1.1 软件及其组成

软件是计算机系统中与硬件对等的一部分,是程序、数据及相关文档资料的集合。因此,软件有两大组成要素:一是存储介质上的程序,它们是可执行的并可产生用户需要的结果;二是相关的文档资料,它们既是软件开发过程中的质量保证,又是软件使用与维护的依据。两大组成要素详述如下:

1)可执行部分

系统程序——面向计算机系统的、为应用程序服务的程序的综合体,它们支撑应用程序的运行,如操作系统。

应用程序——面向用户的、解决各种特定实际问题的程序,如工程管理或科学计算程序、信息管理程序及实时监控程序等。

2)不可执行部分

面向用户的文档——告诉用户如何使用、维护和修改程序,如用户手册、操作手册及程序维护手册等。

面向开发方的文档——提供软件开发过程的质量保证,如系统可行性论证报告、软件计划说明书、需求规范说明书、数据库设计说明书以及测试计划、测试分析报告等。

程序是计算任务的处理对象和处理规则的描述,文档是便于了解程序所需的阐明性的资料。程序必须装入机器才能工作,而文档一般是给人看的,不一定要装入机器。

3.1.2 软件的分类

软件的分类方式有很多种,通常从应用的角度看,我们将软件划分为系统软件和应用软件两大类,这是最常见的软件分类方法。(1)系统软件

系统软件泛指那些为整个计算机系统所配置的、不依赖于特定应用的通用软件,例如操作系统(Windows、Dos、Unix、Linux等)、基本输入/输出系统(BIOS)、系统实用程序(磁盘清理程序、备份程序)、系统扩充程序、网络系统软件及其他系统软件。系统软件还包括直接作用在操作系统上为应用软件提供各种必要支持的软件,如软件开发工具、软件评测工具、界面工具、转换工具、软件管理工具、语言处理程序(C语言编译器)、数据库管理系统(DBMS)、网络支持软件等。(2)应用软件

应用软件是指那些用于解决各种具体应用问题的专门软件。如科学和工程计算软件、文字处理软件、数据处理软件、图形软件、图像处理软件、应用数据库软件、事务管理软件、辅助类软件、控制类软件、智能软件、仿真软件、网络应用软件、安全与保密软件、社会公益服务软件、游戏软件等。

按照应用软件的开发方式和适用范围,应用软件又分为通用应用软件和定制应用软件。

通用应用软件是可在许多行业和部门中广泛应用的软件。定制应用软件是针对具体应用问题而开发的,应用面较窄。定制应用软件是按照不同领域用户的不同需求而专门设计开发的软件,如大学的教学管理系统、医院门诊的挂号系统、机房的学生上机管理系统等。

按照软件权益如何处置来分,软件可分为商品软件、共享软件(shared ware)和自由软件(freeware)。

商品软件需要用户付费才能得到使用权。它除了受到版权保护,通常还受到软件许可证(license)的保护。所谓软件许可证,是一种法律合同,它确定了用户对软件的使用方式,扩大了版权法给予用户的权利。例如,版权法规定将一个软件复制到其他机器使用是非法的,但是软件许可证允许用户购买的一份软件可以同时安装在本单位若干台计算机上使用,或者允许所安装的一份软件同时被若干个用户使用。

共享软件一般是软件的“免费试用版本”,它通常允许用户试用一段时间,也允许用户拷贝和散发,但过了试用期就要交注册费,成为注册用户后才能继续使用。

自由软件的创始人是理查德·斯塔尔曼(Richard Stallman),它于1984年启动开发了Linux系统的自由软件工程(GUN),创建了自由软件基金会(FSF),拟定了通用公共许可证(GPL),倡导自由软件的非版权原则。自由软件有利于软件共享和技术创新,他的出现成就了TCP/IP协议、Apache服务器软件和Linux操作系统等一大批软件精品。

从软件法律保护的角度分类,可以较为明确地将各种不同软件按其特征纳入不同的法律保护之下。

①全部软件可分为常规性软件和功能性软件

前者是一般水平编程人员可以程序化实现的产品,此种软件中凝聚的是编程人员的辛苦、汗水以及投资,而非创造性的智力成果。后者是指编制具有独创性的软件,这种软件与一般水平相比有明显的进步,软件中凝聚了作者的智力创造成果。

②独创性软件分为作品性软件和功能性软件

前者是指软件中的作品性成分所占比重远远大于功能性的软件作品,如游戏软件、界面工具、智能软件等。后者指软件的价值凝聚点在于其作品的功能性之中,亦即在于其完成特定功能的具有创造性的方法步骤之中,如系统软件、各种工具软件、各种应用软件等。

③功能性软件又可分为有专利性软件和无专利性软件

对于具有独创性的软件而言,其创造性有高低之分。其中一小部分软件可以达到“专利三性”的要求而受到专利法的保护,其余绝大部分不能通过“专利三性”的审查,是无专利性的软件。

④无专利性软件分为编辑性软件和原创性软件

其中编辑性软件也称为编辑作品性质的软件,其组成的各个子程序块均无独创性(如从公用程序库中取出的子程序),但在各个子程序块的编排上有独创性。原创性软件是指编程人员自己编写全部代码的软件,随着软件规模的扩大,这种软件的数量会逐渐减少。

3.1.3 软件的版权问题

计算机软件是一项智力劳动的成果,它同一切人类文化科技成果一样,总是在不断继承、借鉴他人成果的基础上不断改进、创新、发展而成的。

为了保护计算机软件著作权人的权益,确保脑力劳动受到奖励并鼓励发明创造,国家根据《中华人民共和国著作权法》制定了《计算机软件保护条例》。

条例中规定,中国公民、法人或者其他组织对其所开发的软件,不论是否发表,依照本条例享有著作权。软件著作权人享有如下各项权利:

发表权,即决定软件是否公之于众的权利;

署名权,即表明开发者身份,在软件上署名的权利;

修改权,即对软件进行增补、删节,或者改变指令、语句顺序的权利;

复制权,即将软件制作一份或者多份的权利;

发行权,即以出售或者赠与方式向公众提供软件的原件或者复制件的权利;

出租权,即有偿许可他人临时使用软件的权利,但是软件不是出租的主要标的的除外;

信息网络传播权,即以有线或者无线方式向公众提供软件,使公众可以在其个人选定的时间和地点获得软件的权利;

翻译权,即将原软件从一种自然语言文字转换成另一种自然语言文字的权利;

软件著作权人可以许可他人行使其软件著作权,可以全部或者部分转让其软件著作权,并有权获得报酬。

有侵权行为发生时相关人员要承担相应的法律责任。

当发生未经软件著作权人许可,发表或者登记、修改、翻译其软件的;将他人软件作为自己的软件发表或者登记的;未经合作者许可,将与他人合作开发的软件作为自己单独完成的软件发表或者登记的;在他人软件上署名或者更改他人软件上的署名等侵权行为时,应当根据情况,承担停止侵害、消除影响、赔礼道歉、赔偿损失等民事责任。

当发生复制或者部分复制著作权人的软件的;向公众发行、出租、通过信息网络传播著作权人的软件的;故意避开或者破坏著作权人为保护其软件著作权而采取的技术措施的;故意删除或者改变软件权利管理电子信息的;转让或者许可他人行使著作权人的软件著作权等侵权行为时,应当根据情况,承担停止侵害、消除影响、赔礼道歉、赔偿损失等民事责任。损害社会公共利益的,由著作权行政管理部门责令停止侵权行为,没收违法所得,没收、销毁侵权复制品,可以并处罚款;情节严重的,著作权行政管理部门并可以没收主要用于制作侵权复制品的材料、工具、设备等;触犯刑律的,依照刑法关于侵犯著作权罪、销售侵权复制品罪的规定,依法追究刑事责任。

3.1.4 软件危机

20世纪60年代中期以后,计算机硬件技术日益进步,计算机价格的下跌为它的广泛应用创造了极好的条件。在这种形势下,一些开发大型软件系统的要求提了出来。然而在大型软件的开发过程中出现了复杂程度高、研制周期长、正确性难以保证这三大难题。遇到的问题找不到解决办法,致使问题堆积起来,形成了人们难以控制的局面,出现了所谓的“软件危机”。

最为突出的例子是美国IBM公司于1963年~1966年开发的IBM360系列机的操作系统。该软件系统花了大约5000人一年的工作量,最多时有1000人投入开发工作,写出近100万行的源代码。然而尽管投入了这么多的人力和物力,得到的结果却极其糟糕。据统计,这个操作系统每次发行的新版本都是从前一版本中找出1000个程序错误而修正的结果。

软件危机是计算机软件在它的开发和维护过程中所遇到的一系列严重问题。概括地说,主要包含两方面的问题:如何开发软件来满足对软件日益增长的需求,以及如何维护数量不断膨胀的已有软件。

软件危机导致了软件工程的产生。借鉴一般的工程经验,针对软件产品的性质和特征,运用科学知识找出一套原理和方法克服软件产品开发过程中的困难,从而以最经济的手段得到软件产品,这是软件工程所面临的任务。

3.2 系统软件

我们把没有安装任何软件的计算机称为“裸机”。系统软件是出现在计算机硬件与用户之间,用以支持计算机系统正常运行并实现用户提交的各种操作的那部分软件。系统软件是为计算机系统提供了基本功能服务的程序的集合,主要包括:操作系统、程序设计语言编译系统和各种实用工具软件等。

如图3.1所示,我们可以看出系统软件在计算机系统中的地位。图3.1 系统软件在计算机系统中的地位

3.2.1 操作系统

操作系统是管理计算机软硬件资源的一个平台,是一组控制和管理计算机硬件和软件资源、合理地对各类作业进行调度以及方便用户的程序的集合。对内,操作系统管理计算机系统的各种资源,扩充硬件的功能;对外,操作系统提供良好的人机界面,方便用户使用计算机。它在整个计算机系统中具有承上启下的作用。

操作系统可以实现计算机的处理器管理、内存管理、文件管理、设备管理四大功能。此外,为了方便用户使用操作系统,还要向用户提供友好的用户界面。

1)操作系统的启动

一台计算机如果安装了操作系统,操作系统将驻留在硬盘上。当加电启动计算机时,CPU首先执行ROM BIOS中的自检程序,测试计算机中各个部件的工作状态是否正常。若无异常,CPU将继续执行BIOS中的自举程序,从硬盘中读出引导程序并装入内存(RAM),而后将控制权交给引导程序,由引导程序继续装入操作系统。操作系统成功装入后,整个计算机就处于操作系统的控制之下了。

2)处理器管理

处理器管理的主要任务是对处理器的使用进行分配,并对其运行进行控制和管理。为了提高CPU的利用率,操作系统一般都是若干个程序同时运行,称为“多任务处理”。所谓的“任务”,是指装入内存并启动执行的一个应用程序。下面我们以Windows操作系统为例,介绍操作系统对于处理器的管理。操作系统成功启动之后,这时除了和操作系统相关的一些程序在运行外,用户还可以根据自己的需要启动多个应用程序。这些程序可以互不干扰的独立工作。我们可以通过Ctrl+Alt+Del打开“Windows的任务管理器”窗口,窗口中有“应用程序”、“进程”、“性能”、“联网”、“用户”五个选项卡(Windows XP为例)。我们可以通过“应用程序”选项卡看到当前运行的应用程序,通过“进程”选项卡可以看到系统中的进程对CPU和内存的使用情况。

处理器的管理本质上是对进程的管理,所谓“进程”,就是指要么全做要么不做的一段程序,这段程序是原子的。Windows是一个多任务的操作系统,当应用程序对CPU有所请求时,系统就为它创建一个或多个进程并为这些进程分配资源。处理器的管理就是对这些进程的同步、进程之间的通信、进程调度进行管理。

如果我们把CPU的时间进行划分(比如1/20秒),每段时间就称为“时间片”。当我们启动多个任务,为了保证多个任务“同时”执行,操作系统中的调度程序一般通过时间片轮转的原则为这些任务分配处理器,即每个任务轮流得到一个时间片,当时间片用完后,不论这个任务多么重要,调度程序都要把时间片分配给下一个任务,依次循环下去,直至任务完成。由于CPU的处理速度极快,我们用户就感觉CPU在同时执行所有的任务。

由于不同任务的重要程度不同,请求的迫切程度也不同,所以要通过一定调度算法来确定任务的优先级,从而决定任务得到处理器的先后次序。调度算法有很多种,比如先来先服务(FCFS),也就是按时间顺序排队,先到的任务先得到服务;再如短作业优先(SJF),可以照顾到所有作业中占很大比例的短作业,使它们能够比长作业优先执行。调度算法很多也很灵活,这里就不一一列出了。

3)存储器管理

虽然计算机的内存容量不断增加,但由于经济等限制条件,内存资源是有限的。存储器管理主要是为多任务系统提供良好的环境,方便用户使用存储器,提高存储器的利用率,并能从逻辑上扩充内存。存储器管理可以实现内存分配、内存保护、地址映射、内存扩充等功能。

内存分配的主要任务是为每个程序分配内存空间,从而提高存储器的利用率,减少不可用的内存空间,允许正在运行的程序申请附加的内存空间,以适应程序和数据动态增长的需要。

内存保护的主要任务是确保每位用户的程序都在自己的内存空间中运行,互不干扰。

一个程序经编译、链接后形成可执行文件,这些程序的起始地址都是从0开始,程序中其他地址都是相对于起始地址计算的,这些地址所形成的地址范围称为“地址空间”,其中的地址称为“逻辑地址”。而内存中的一系列存储单元所限定的地址范围称为“内存空间”,其中的地址称为“物理地址”。地址映射功能实现了由地址空间的逻辑地址到内存空间的物理地址的映射。

现在的操作系统一般都采用虚存(也称“虚拟内存”)技术进行存储器管理。虚存技术从逻辑上对物理内存进行扩充,使用户感觉到的内存容量比实际内存容量大得多。也就是说,使系统能运行比实际内存容量大得多的应用程序,或者能让更多的用户并发运行。虚存机制会先假设把用户程序的地址空间划分成若干大小的区域,一般是4KB,称为“页面”。启动一个任务时,只允许装入当前要执行的一部分程序和数据页面,其余页面放在硬盘提供的虚拟内存中,然后开始执行程序。在执行过程中,如果要执行的页面尚未调入内存,则被认为缺页,此时调用请求页面功能将他们调入内存,使任务能继续执行下去。如果此时内存已满,则根据相应的页面置换算法将内存中暂时不用的页面调到磁盘上,腾出足够的内存空间后将所要访问的页面调入内存,使之能够执行下去。

选择换出页面的算法称为“页面置换算法”。页面置换算法很多,如先进先出(FIFO)算法,该算法总淘汰最先进入内存的页面;最佳置换(OPT)算法会选择永不使用或者在最长时间内不被访问的页面;最近最久未使用(LRU)算法会选择最近最久未使用的页面予以淘汰。置换算法的好坏直接影响系统的性能,不适当的算法会使刚被换出的页很快又被访问,必须重新调入,还必须再选一页调出,如此频繁的更换页面会使大部分时间都浪费在页面置换工作上,这是我们所不希望的。

4)文件管理

文件是具有文件名的一组相关信息的集合。在现代计算机系统中,程序和数据都是以文件的形式存储在外存储器中,供所有或指定的用户使用,而用户必须以文件为单位对外存中的信息进行访问和操作。为此,操作系统中必须有文件管理机构。文件管理的主要任务是对用户文件和系统文件进行管理,它能实现包括文件存储管理、目录管理、文件的读/写管理、文件的共享与保护等功能。

每个文件都有自己的名字,称为“文件名”,用户利用文件名来访问文件。在Windows中,文件名可以长达255个字符,但不能包含下列符号之一:“\”、“/”、“:”、“?”、“∗”、“"”、“<”、“>”、“|”。文件中除了文件名外还有一些文件的说明信息。在文件的图标上单击鼠标右键,在快捷菜单中选择“属性”,打开“属性”窗口,就可以看到文件类型、文件长度、文件物理位置(存储在硬盘上的位置)、文件的存取控制、文件的时间(创建、最近修改、最近访问等)、文件的创建者、文件的摘要等。文件的说明信息和文件的具体内容是分开存放的,前者保存在该文件的目录中,后者全部保存在磁盘的数据区中。

为了有序存放文件,操作系统把文件组织在若干文件目录中。通过目录管理为每个文件建立目录项,并对众多的目录项进行有效的组织,方便文件的按名存取。在Windows系统中文件目录也称为“文件夹”,采用多级层次结构(也叫“树状结构”)。每个磁盘或磁盘分区作为一个根目录,包含若干文件夹,每个文件夹中可以包含文件和下一级文件夹,也可以是空的,依此类推形成了多级文件夹结构。文件夹也有自己的说明信息,除了文件名以外,还包括存放位置、大小、创建时间、文件夹属性(存档、只读、隐藏等)。还可以设置文件夹的共享属性,以便网络上的其他用户可以共享访问该文件夹中的内容。

5)设备管理

在计算机系统中,除了主机外,还有若干外设用于实现信息的输入、输出和存储。设备管理的主要任务是完成I/O请求,为用户分配I/O设备。设备管理能实现包括缓冲管理、设备分配和设备处理等功能。

缓冲管理的基本任务是管理好各种类型的缓冲区,以缓和CPU和I/O设备速度不匹配的矛盾。很多系统会使用通过增加缓冲区容量的办法来改善文件系统的功能。

设备分配的任务是根据用户的请求为之分配所需的I/O设备,同时标记设备的分配情况。系统根据设备的描述标记,可以知道当前设备是否可用、是否忙碌,以供分配时参考。

设备处理程序又称为“设备驱动程序”。当系统中出现I/O请求时,设备处理程序首先检查I/O请求的合法性,了解设备的状态是否空闲,然后向设备控制器发出I/O命令,启动I/O设备完成指定的I/O操作。

3.2.2 常用操作系统

从计算机的体系结构来看,操作系统(Operating System,简称OS)是对计算机系统的软硬件和数据资源进行统一控制(Control)、调度(Dispatch)和管理(Manage)的软件系统,它与硬件系统密切相关。其主要作用及目的就是提高系统资源的利用率,提供友好的用户界面,创造良好的工作环境,从而使用户能够灵活、方便地使用计算机。

下面介绍几种比较常见的操作系统。

1)MS-DOS

DOS是“Disk Operating System”的简称,意思是磁盘操作系统。常见的DOS分为两种,分别是IBM公司的PC-DOS和微软公司的MS-DOS,它们的功能、命令格式基本相同,比较常用的是MS-DOS。

MS-DOS系统是1981年由微软公司为IBM个人电脑开发的,在1985年到1995年间,DOS占据操作系统的统治地位。它是一个字符式操作系统,也就是说,在字符模式下,我们需要通过键盘输入DOS字符命令来工作,只有执行完一个命令后才能输入另一条命令,所以它又是一个单任务操作系统,Windows XP下的DOS环境如图3.2所示。图3.2 Windows XP下的DOS环境

2)Windows

1980年3月,苹果公司的创始人史蒂夫·乔布斯在一次会议上介绍了他在硅谷施乐公司参观时发现的一项技术——图形用户界面(GUI,graphic User Interface)技术,微软公司总裁比尔·盖茨听了后,也意识到这项技术潜在的价值,于是带领微软公司开始了GUI软件——Windows的开发工作。

Windows是一个为个人电脑和服务器用户所设计的操作系统,如图3.3所示。它的第一个版本Windows 1.0由微软公司于1985年发行,经历了最初运行在DOS下的Windows 3.x,到现在风靡全球的Windows 9x、Windows 2000、Windows XP、Windows Vista以及最新的Windows 7。Windows之所以如此流行,是因为它的功能强大以及易用性,如界面图形化、多用户、多任务、网络支持良好、出色的多媒体功能、硬件支持良好、众多的应用程序。此外,Windows NT、Windows 2000系统还支持多处理器,这对大幅度提升系统性能很有帮助。

Windows的最新版本是Windows 7。Windows 7利于更好地查找及管理文件,可简化日常任务。Windows 7经过精心设计,能最充分地利用64位电脑的强大功能,具备更快更可靠的性能,因此电脑会按照用户希望的方式工作。同时,家庭组、Windows Media Center及Windows触控等一系列强大功能使新事物成为可能。Windows 7为您带来快捷、简单、精彩的电脑使用新体验主要体现在以下几个方面:

简单:Windows 7让搜索和使用信息变得更加简单,包括本地、网络和互联网搜索功能,直观的用户体验将更加高级,还会整合自动化应用程序提交和交叉程序数据透明性;

安全:Windows 7包括改进的安全和功能合法性,把数据保护和管理扩展到外围设备。Windows 7对基于角色的计算方案和用户账户管理进行改进,搭建数据保护和坚固协作的固有冲突之间沟通桥梁,开启企业级的数据保护和权限许可;

更好的连接:Windows 7将进一步增强移动工作能力,数据和应用程序的访问不限时间、地点及设备,开启坚固的特别协作体验,扩展无线连接、管理和安全功能,性能和当前功能以及新兴移动硬件将得到优化,多设备同步、管理和数据保护功能将被拓展;

低成本:Windows 7将帮助企业优化它们的桌面基础设施,具有无缝操作系统、应用程序和数据移植功能,并简化PC供应和升级,进一步朝完整的应用程序更新和补丁方面努力。Windows 7还将包括改进的硬件和软件虚拟化体验,并将扩展PC自身的Windows帮助和IT专业问题解决方案诊断。图3.3 Windows系统

3)Unix

Unix是一种分时计算机操作系统,1969年在AT&TBell实验室诞生。Unix是Internet诞生的平台,是众多系统管理员和网络管理员的首选操作系统。实际上在网络化的世界里,每一位计算机用户都在直接或间接地与Unix打交道。

Unix系统自1969年踏入计算机世界以来已有近40年。虽然目前在市场上面临强有力的竞争,它仍然是笔记本电脑、PC、PC服务器、中小型机、工作站、大(巨)型机上全系列通用的操作系统。而且以其为基础形成的开放系统标准(如POSIX)也是迄今为止唯一的操作系统标准。就此意义而言,Unix不仅是一种操作系统的专用名称,而且是目前开放系统的代名词。

4)Linux

Linux是1991年芬兰赫尔辛基大学名叫Linus Torvalds的计算机业余爱好者设计的,用来替代Minix(是由一位名叫Andrew Tannebaum的计算机教授编写的一个操作系统示教程序)操作系统,如图3.4所示。这个操作系统可用于386、486或奔腾处理器的个人计算机上,并且具有Unix操作系统的全部功能。Linux0.01版于1992年9月发布。

Linux之所以受到广大计算机爱好者的喜爱,主要原因有两个:一是它属于自由软件,用户不用支付任何费用就可以获得它和它的源代码,并且可以根据自己的需要对它进行必要的修改,无偿使用,无约束地继续传播;另一个原因是它具有Unix的全部功能,任何使用Unix操作系统或想要学习Unix操作系统的人都可以从Linux中获益。图3.4 Linux系统

5)Mac OS

Mac OS是一套运行于苹果Macintosh系列计算机上的操作系统。Mac OS是首个在商用领域成功的图形用户界面。现行最新的系统版本是Mac OS X 10.3.x版。

6)Palm OS

Palm OS是一种32位的嵌入式操作系统,用于掌上电脑。Palm OS与同步软件HotSync结合可以使掌上电脑与PC机上的信息实现同步,把台式机的功能扩展到了手掌上。

3.3 应用软件

应用软件是指那些用于解决各种具体应用问题的专门软件。

通常应用软件被分为通用应用软件和定制应用软件。通用应用软件是可在许多行业和部门中都广泛应用的软件。定制应用软件是面向具体问题的,应用面较窄。下面简单介绍一下比较常见的通用应用软件。

1)字处理软件

字处理软件主要实现文字编辑、文字处理、桌面排版等功能,如WPS、Word、Adobe Acrobat Reader、Frontpage等。

2)电子表格软件

电子表格软件主要实现表格的定义、数值计算和统计、绘图等功能,如Excel等。

3)图形图像软件

图形图像软件主要实现图像处理、几何图形绘制、动画制作等功能,如AutoCAD、Photo⁃shop、CorelDraw、3Ds MAX、ACDSee、Snagit等。

4)媒体播放软件

媒体播放软件主要用来播放各种数字音频和视频文件,如Media Player、RealPlayer、Winamp、超级解霸等。

5)网络通信软件

网络通信软件可以实现网络聊天、电子邮件、IP电话等功能,如Outlook Express、Foxmail、网络蚂蚁(Net Ants)、网际快车(FlashGet)、MSN、网络寻呼(QQ、ICQ)等。

6)演示软件

演示软件可用于制作演示文稿,如PowerPoint、Authorware、方正奥思等。

7)信息检索软件

我们常称之为“搜索引擎”,在它们的帮助下,可以在数据库和因特网中查找我们需要的信息,如Google、天网、百度、YAHOO!、新浪等。

8)个人信息管理软件

个人信息管理软件实现记事本、日程安排、通讯录、邮件等功能,如Outlook、Lotus Notes等。

9)游戏软件

游戏软件可用于玩游戏、学习和娱乐等,如空当接龙、蜘蛛纸牌、极品飞车、虚拟人生、星际争霸等。

3.4 常用工具软件功能介绍

当今世界,计算机已成为我们学习和生活中不可缺少的帮手。在使用计算机的过程中,工具软件起着举足轻重的作用,它们可以帮助用户更好地利用各种计算机资源,选择最高效、方便、快捷的方法来完成某些操作。目前,工具软件的种类繁多,下面介绍几种常用的系统工具软件。

1)魔幻分区软件Partition Magic

魔幻分区软件Partition Magic的主要功能是在不破坏硬盘数据的情况下实现动态、无损的分区调整,如创建新的分区、调整分区容量、重新分配可用空间、合并分区、复制分区、分区格式转换、格式化分区、隐藏分区、删除分区和安装操作系统等。

启动Partition Magic,其窗口界面如图3.5所示。图3.5 Partition Magic窗口界面

2)360安全卫士

360安全卫士是当前功能最强、效果最好、最受用户欢迎的上网必备安全软件。360安全卫士拥有查杀木马、清理插件、修复漏洞、电脑体检等多种功能,并独创了“木马防火墙”功能,依靠抢先侦测和云端鉴别,可全面、智能地拦截各类木马,保护用户的账号、隐私等重要信息。360安全卫士自身非常轻巧,同时还具备开机加速、垃圾清理等多种系统优化功能,可大大加快电脑运行速度,内含的360软件管家还可帮助用户轻松下载、升级和强力卸载各种应用软件。图3.6 360安全卫士界面

3)硬盘虚拟光驱(Virtual Drive)

计算机用户经常要从光驱读取光盘中的数据和运行光盘中的程序,但一般情况下,光驱运行速度较慢,我们还会频繁从光驱中运行相同的光盘,从而增加光驱和光盘的磨损。通常一台计算机一般只配备一台光驱,无法同时运行多个光盘,虚拟光驱软件就可以解决这样的问题。

虚拟光驱软件能模拟物理光驱,使用它可以创建若干台虚拟光驱,并将一张张光盘中的内容在硬盘中建立映像文件,形成一个个带有虚拟光盘图标的虚拟光盘。日后需要这些光盘时,就不必再将光盘放入真实光驱中,只需在虚拟光盘图标上双击,虚拟光盘就会立即被加载到虚拟光驱中运行,快速又方便。

4)光盘刻录软件

Nero是Ahead Software公司研制的,可以实现CD、DDCD、DVD等多种介质的刻录;可以制作数据CD、音乐CD、混合模式CD,可引导CD\VCD、超级VCD和Photo CD等多种形式的光盘;可以将硬盘或光盘中的部分数据和文件刻录至光盘中;可以实现整个光盘数据的复制。Nero软件可以从http://www.nero.com网站上下载。

5)克隆精灵Nortonghost

Nortonghost是由Symantec公司研制的一个硬盘数据拷贝软件,它可以把整个硬盘或分区中的内容从一个硬盘或分区拷贝到另一个硬盘或分区中,甚至可以将硬盘或分区中的全部有效数据按磁道顺序读取后,以映像文件的形式保存至硬盘或光盘中,以备必要时从映像文件中再将数据读取后复制到原来的硬盘或新的硬盘中。

6)图片浏览软件ACDSee

ACDSee是ACD Systems公司开发的数字图像浏览软件,如图3.7所示。该软件提供了快速浏览图像的功能,可管理多达50余种常用图片的格式,操作简易快捷,是平面设计人员、数码相机用户、摄影师等人员的首选。图3.7 图片浏览软件ACDSee

7)压缩软件WinRAR

WinRAR是最好的压缩软件之一,如图3.8所示。其界面友好,使用方便,支持ARJ、TAR、ISO等多种类型文件的解压,完全支持RAR和ZIP。它还可以自建压缩文件和解压缩,可建立自解压及多卷压缩文件,已成为Windows环境中最受欢迎的压缩管理软件之一。许多网站提供WinRAR软件的下载,如华军软件园等。图3.8 压缩软件WinRAR

优秀的软件还有很多,在这里就不一一罗列,大家可以通过相关书籍或网络得到相关资料。

3.5 程序设计

3.5.1 程序设计语言

1)计算机程序设计语言的发展

20世纪40年代末,人们发明了第一台计算机,真正的程序设计可以说是与这台机器同时问世的。从数据是可供给的意义上说,早期的机器是可编程的,即数据以卡片或纸带的形式影响机器的运行结果。

完全用于计算的计算机是1830年至1840年由巴贝奇(Babbage)发明的。虽然该机器没有完全建成,但他却能执行由诗人拜伦的女儿Ada设计的数个计算实例。正因为如此,Ada被公认为是第一个程序员,而后来人们用她的名字命名了Ada语言。

随着具有存储程序的通用电子数字计算机的问世,程序设计成了一大难题。早期的程序是直接用机器代码和二进制代码编写的,但很快就出现了能用符号和助记符表达其代码的汇编语言。

1954年至1957年由John backus领导下的IBM的一个开发小组研制出了世界第一个高级程序设计语言FORTRAN。

60年代中后期,由于软件开发缺乏科学规范的系统规划与测试及评估标准,结果导致大批耗费巨资建立起来的软件系统由于含有错误而无法使用,即软件危机。软件危机导致了软件工程的产生。

1969年,出现了结构化程序设计方法。

1970年,第一个结构化程序设计语言——Pascal语言出现,标志着结构化程序设计时期的开始。

从80年代初开始,软件设计思想又产生了一次革命,其成果就是面向对象的程序设计。由于人们对数据处理的过程是面向具体的应用功能,其方法就是软件的集成化,即产生一些通用的、封装紧密的功能模块,它们应该能相互组合又能重复使用。对使用者来说,只需关心它的接口(输入量、输出量)及能实现的功能,完全不用关心它们是如何实现的,C++、VB、Delphi就是这样的语言。

直到现在,共有几百种高级语言出现,其中影响较大、使用较普遍的有FORTRAN、AL⁃GOL、COBOL(通用商业语言)、BASIC、LISP、SNOBOL、PL/1、Pascal、C、PROLOG、Ada、C++、VC、VB、Delphi、JAVA等。高级语言的发展也经历了从早期的语言到结构化程序设计语言,从面向过程到非过程化程序语言的过程。

高级语言的下一个发展目标是非过程化的程序语言。也就是用户只需要告诉程序你要干什么,程序就能自动生成算法,自动进行处理。

在未来计算机语言的发展过程中,面向对象程序设计以及数据抽象将占有很重要的地位,未来语言的发展将不再是一种单纯的语言标准,其使用者将不再只是专业的编程人员,人们完全可以用订制工作流程的简单方式来完成编程。

2)程序设计语言的分类

程序设计语言也称为编程语言,即编写程序时所采用的用来描述算法过程的某种符号系统。程序设计语言按照语言级别可以分为低级语言和高级语言。

低级语言有机器语言和汇编语言两种。低级语言与特定的机器有关,功效高,但使用复杂、繁琐、费时、易出差错。

机器语言是表示成数码形式的机器基本指令集,或者是操作码经过符号化后的基本指令集,是由若干个0和1按照一定的规则组成的代码串。通常我们也称机器语言为计算机指令系统,它是一种面向机器的编程语言。用机器语言编写的程序叫做“目标程序”。计算机可直接识别目标程序,由于机器语言与硬件的关系十分密切,不同类型的计算机的指令系统不同,因此不同类型计算机的机器语言编写的程序并不通用。而且机器语言程序是用二进制(八进制、十六进制)代码编写,人们难以记忆和理解,后期修改和维护也很困难,所以现在已不用机器语言编制程序了。

汇编语言是机器语言中地址部分符号化的结果,也称为符号化指令的集合。它用容易理解和记忆的助记符来代替机器指令的操作码和操作数,这样就可以使机器指令用符号表示而不再用二进制表示,这种符号化指令通常称为“汇编指令”,其与机器指令一一对应。

汇编语言编写的程序比机器语言编写的更直观,也更容易理解记忆。但汇编语言与计算机硬件关系紧密,所以对于程序设计人员来说,硬件知识掌握程度要求相对比较高,仍旧不容易被大多数非专业人士所理解掌握。

高级语言的表示方法要比低级语言更接近于待解问题的表示方法,可以看作是符号化语句的集合,其特点是在一定程度上与具体机器无关,易学、易用、易维护,克服了汇编语言的欠缺,提高了编写、维护程序的效率,接近人类自然语言(主要是英语)。

高级语言虽然接近自然语言,但与自然语言仍有很大差距。高级语言的语法规则极其严格,主要表现在它对于语法中的符号、格式等都有专门的规定。主要原因是高级语言的处理系统是计算机,计算机没有人类的智能,计算机所具有的能力是人预先赋予的,本身不能自动适应变化不定的情况。

程序设计语言按照用户的要求有过程式语言和非过程式语言之分。过程式语言的主要特征是:用户可以指明一系列可顺序执行的运算,以表示相应的计算过程,如FORTRAN、COBOL、Pascal等。非过程式语言的含义是相对的,凡是用户无法指明表示计算过程的一系列可顺序执行的运算的语言,都是非过程式语言。

按照应用范围,有通用语言与专用语言之分。如FORTRAN、COLBAL、Pascal、C等都是通用语言。目标单一的语言称为专用语言,如APT等。

按照使用方式,有交互式语言和非交互式语言之分。具有反映人机交互作用成分的语言成为交互式语言,如BASIC等。不反映人机交互作用的语言称为非交互式语言,如FOR⁃TRAN、COBOL、ALGOL69、Pascal、C等都是非交互式语言。

3)程序与程序设计语言

软件和程序本质上是相同的。在不会发生混淆的场合下,“软件”和“程序”两个名称经常可以互换使用,并不严格加以区分。

程序是由某种程序设计语言编写的能够完成一定功能的代码。程序以文件的形式存储在计算机中,在启动运行后完成某一确定信息的处理任务。静态上表现为保存在存储器中的文档,动态上表现为可以被调到内存由CPU执行的一连串指令。

计算机可以通过执行不同程序来完成不同任务,即使执行同一个程序,当输入数据不同时,输出的结果也有可能不同。因此,程序通常不是专门为解决某一个特定问题而设计的,大多数是为了解决某一类问题而设计开发的。

一个程序应包括对数据的描述和对操作的描述。对数据的描述是指在程序中要指定数据的类型和数据的组织形式,即数据结构。对操作的描述是操作步骤,即算法。著名的计算机科学家沃斯提出一个公式为“程序=数据结构+算法”,实际上,一个程序除了数据结构和算法以外,还应包括程序设计的方法和某一种程序设计语言。

程序设计语言是一套表达计算过程的符号系统,其表达形式能够同时被计算机和人所理解。其中,“计算”定义为计算机能够完成的任何操作。这种操作不仅仅局限于算术运算,而是包括数据运算、文本处理、信息存储等计算机能做的工作。这种语言能够同时被计算机所理解,它的语法结构足够简单,以便于能够翻译成机器语言。如果想让人们能够理解,一般的要求是,语言能够对计算的各种操作进行高度抽象,使得一个对底层硬件一无所知的人也能编写他的程序。

程序设计语言是表达计算的工具,从不同的角度考虑计算会产生不同的程序设计语言,但是可读性(无论对人还是对机器而言)是对它们共同的要求。

语言的定义大致可以分成两个部分:语法和语义。

语法:决定了语言要素如何组合在一起构成其他的语言要素。程序设计语言的语法和我们所使用的自然语言的语法很相似。几乎所有的语言都使用上下文无关文法进行语法定义。

语义:我们可以把语义理解为对于程序中的某个结构的含义的理解,那么这个理解就与上下文环境有关。

由汇编语言或高级程序设计语言编写的程序称为“源程序”,不能被CPU直接运行。存储源程序的文件称为“源文件”。

源程序经过相应的编译程序或解释程序翻译转换为功能等价的目标程序,相应的文件称为“目标文件”。高级语言的翻译有编译和解释两种方式,分别由编译程序和解释程序完成。编译程序对源程序进行扫描处理,根据已知的规则,判断源程序是否存在语法等错误,最终将其转换成为目标程序。此方式可以在程序编辑完成后通过编译找出其中的问题,即先翻译后执行,编译后先自动生成目标程序,再由链接程序将若干个目标程序块及库文件链接成为可执行文件,这种方式提高了程序的开发效率。解释程序则按照程序中语句的顺序逐条翻译并执行语句,即每翻译一条,就执行一条与语句相关的操作,并根据操作的结果决定下一条解释执行的语句或操作。解释方式只处理源程序,并不生成目标程序,比起编译方式,此方式运行效率低。

由机器指令构成的完整的、可直接运行的程序称为“可执行程序”,相应的文件称为“可执行文件”。可执行程序通常由链接程序将目标程序和相应的库函数链接后自动生成。我们也可以直接用机器语言编写可执行程序。

4)常用的程序设计语言介绍(1)FORTRAN语言

FORTRAN(FORmula TRANslation)——公式翻译程序设计语言,产生于1956年,是第一个广泛使用的高级语言,为广大科学和工程技术人员使用计算机创造了条件。特点是接近数学公式,简单易用,允许复数与双精度实数运算。

FORTRAN语言由于其悠久的历史,在我国已得到大范围的推广普及,几乎每一位工程技术人员都学习并使用过FORTRAN语言。伴随着计算机技术的飞速发展,FORTRAN语言也处于不断演变的过程之中。对于广大计算机工作者,特别是与科学计算领域密切相关的技术人员而言,了解FORTRAN语言的发展状况,对充分利用现有计算机资源、有效求解各自领域的计算问题,无疑是大有裨益的。(2)Pascal语言

在高级语言发展过程中,Pascal是一个重要的里程碑。Pascal语言是第一个系统地体现了E.W.Dijkstra和C.A.R.Hoare定义的结构化程序设计概念的语言。

1971年,瑞士联邦技术学院尼克劳斯·沃尔斯(Niklaus Wirth)教授设计并创立以计算机先驱帕斯卡的名字命名的Pascal语言。Pascal的取名原本就是为了纪念17世纪法国著名哲学家和数学家Blaise Pascal。

Pascal是最早出现的结构化编程语言,具有丰富的数据类型和简洁灵活的操作语句,其语法严谨,层次分明,运行效率高,查错能力强,适用于描述数值和非数值问题。

Pascal有5个主要的版本,分别是Unextended Pascal、Extended Pascal、Object-Oriented Extensions to Pascal、Borland Pascal和Delphi Object Pascal。其中,Borland Pascal和Delphi Object Pascal不是正式的Pascal标准,具有专利性。但由于Turbo Pascal系列和Delphi功能强大并且广为流行,Borland Pascal和Delphi Object Pascal已自为一种标准,为大家所熟悉。(3)C与C++语言

C语言是在20世纪70年代初问世的。1978年美国电话电报公司(AT&T)贝尔实验室正式发表了C语言。同时由B.W.Kernighan和D.M.Ritchit合著了著名的《THE C PRO⁃GRAMMING LANGUAGE》一书,通常简称为“《K&R》”,也有人称之为“《K&R》标准”。但是,在《K&R》中并没有定义一个完整的标准C语言,后来由美国国家标准学会在此基础上制定了一个C语言标准,于1983年发表,通常称之为“ANSI C”。

C语言是一种结构化程序设计语言。它层次清晰,便于按模块化方式组织程序,易于调试和维护。C语言的表现能力和处理能力极强。它不仅具有丰富的运算符和数据类型,便于实现各类复杂的数据结构,它还可以直接访问内存的物理地址,进行位(bit)一级的操作。由于C语言实现了对硬件的编程操作,兼顾了高级语言和汇编语言的特点,因此C语言既可用于系统软件的开发,也适合于应用软件的开发。此外,C语言还具有效率高、可移植性强等特点,因此广泛地移植到了各种类型计算机上,从而形成了多种版本的C语言。

目前最流行的C语言有以下几种:Microsoft C(或称MS C)、Borland Turbo C(或称Turbo C)、AT&T C。这些C语言版本不仅实现了ANSI C标准,而且在此基础上各自做了一些扩充,使之更加方便、完美。

在C语言的基础上,1983年贝尔实验室的Bjarne Strou-strup又推出了C++。C++进一步扩充和完善了C语言,成为一种面向对象的程序设计语言。C++目前流行的最新版本是Borland C++4.5、Symantec C++6.1和Microsoft Visual C++2.0。C++提出了一些更为深入的概念,它所支持的这些面向对象的概念容易将问题空间直接地映射到程序空间,为程序员提供了一种与传统结构程序设计不同的思维方式和编程方法。因而也增加了整个语言的复杂性,掌握起来有一定难度。(4)BASIC和VB语言

BASIC的全称是“Beginner’s all Purpose Symbolic Instruction Code”,意为“初学者通用符号指令代码”。BASIC语言的第一个版本是在1964年由美国达尔摩斯学院的基米尼和科茨完成设计并提出的,经过不断丰富和发展,现已成为一个功能全面的中小型计算机语言。BASIC易学、易懂、易记、易用,是初学者的入门语言,也可以作为学习其他高语级言的基础。(5)COBOL语言

COBOL的全称是“Common Business Oriented Language”,意为“通用商业语言”。

在企业管理中,数值计算并不复杂,但数据处理信息量却很大。为专门解决经企管理问题,1959年,由美国的一些计算机用户组织设计了专用于商务处理的计算机语言COBOL,并于1961年由美国数据系统语言协会公布,经不断修改、丰富、完善和标准化后已发展为多种版本。

COBOL语言使用了300多个英语保留字,大量采用普通英语词汇和句型。COBOL程序通俗易懂,素有“英语语言”之称。

目前,COBOL语言主要应用于情报检索、商业数据处理等管理领域。

3.5.2 算法

计算机能帮助我们解决很多问题,而这些问题的解决方法就是算法。算法是一种思想。其实这个概念我们非常熟悉,那是因为从小学就开始接触算法。例如做四则运算要先乘除后加减,只要按照一定的程序一步一步做,一定不会错。至于乘法口诀、珠算口诀,更是算法的具体体现。

1)算法及其特征

算法是针对特定任务和对象而设计的,在有限步骤内求解某一问题所使用的一组定义明确的规则,是问题求解规则的一种过程化描述。通俗点说,就是计算机解题的方法与过程。

一个算法应该具有以下几个重要的特征:(1)有穷性:一个算法必须保证执行有限步之后结束。如果一个无穷的算法并不能提交我们所需要的结果,那么这个算法将毫无意义。(2)确切性:算法的每一步骤必须有确切的定义。这里要求算法的每个步骤都是明确的、没有歧义的,从而保证算法能安全正确地被执行。(3)可行性:算法原则上能够精确地运行,而且人们用笔和纸做有限次运算后即可完成。(4)输入:一个算法有0个或多个输入。输入为算法指定了初始条件,当然这个初始条件并不是必需的。(5)输出:一个算法有一个或多个输出。将输出结果提交,以反映对输入数据加工后的结果。没有输出的算法是毫无意义的。

算法的处理对象是数据,而程序的核心是算法。因此,我们应该正确的对待算法与数据之间的关系,数据的定义是算法设计的基础,数据的存储结构在某种程度上将影响算法的好坏。算法的表示有很多种,常见的有自然语言表示法、流程图表示法、N-S图表示法、伪代码表示法等。

2)结构化程序设计

结构化程序设计的思想是:自顶向下,逐步求精。将一个大的问题分解成多个可独立进行编程的小问题(模块),如果某个模块还未精细到可以直接编写的程度,则继续对它进行分解,直至能直接编程为止。其程序结构是按功能划分成若干个基本模块,这些模块形成一个层次结构。各模块之间的关系尽可能简单,在功能上相对独立,各个部分除了必要的数据交互外,彼此互不影响,相互隔离。每个模块都是由顺序、分支、循环三种基本结构组成。

程序设计本质是为了实现数据的处理,其中的数据我们可以理解为对客观事物的符号表示,即所有能输入到计算机中并被计算机程序处理的符号的总称。数据作为程序操作的对象,具有名称、类型、作用域等特征,使用前要先对这些特征加以说明。

数据名是用户通过标识符来命名的,原则上要“见名知意”。

数据类型如图3.9所示,数据类型说明了数据的性质和在内存中需占用多少存储单元。下面以C语言为例进行说明,其数据类型可以分为基本类型和构造类型。图3.9 数据类型(1)基本类型

基本整型中包括的四种数据类型所定义的变量是程序设计中经常使用到的最简单的数据,它的值是一个数值或字符。数值有精度的要求,划分为整型、实型、字符型和枚举型。例如:

int x;char c;

声明了整型变量x、字符型变量c。(2)数组类型

数组是一组有序数据的集合。在C语言中,数组用数组名、数组类型、数组维数和数组宽度来说明。例如:

int array[2][3];

声明了2行3列的二维整型数组array。(3)指针类型

变量被声明后,系统将在内存中为其分配内存单元,指针是变量所在内存单元的首地址。例如:

int x=1,∗p=&x;

声明了初始值为1的整型变量x、指向整型变量的指针变量p,p的初始值为x所在的地址编号,即指针p指向变量x。(4)结构体类型

结构体类型是由程序员根据自己的要求自行定义的数据类型。具有结构体数据类型的变量的成员可以是基本类型、构造类型、指针类型等标准类型的数据。例如:

声明了具有xs结构的结构体变量a,a中有xh、xm、nl、bj四个成员。

作用域说明数据的使用范围。

在结构化程序设计方法中,有三种基本控制结构:顺序结构、分支结构、循环结构。

顺序结构是指语句的执行顺序和它在程序中出现的次序是一致的。如图3.10所示,我们可以看到,先执行操作(集)A,然后执行操作(集)B。

分支结构实现了把程序根据一定的条件分成不同的分支,程序只执行其中的一个分支。如图3.11所示,分支结构由一个条件判断表达式P和两个供选择的操作A和B组成。首先判断条件表达式P的值,如果P的值为真,则执行操作A,否则执行操作B。

在C语言中,分支结构的表示形式如下:

循环结构是根据一定的条件重复执行某些语句,重复执行的次数可以预先指定,也可以不指定而由循环体中的变量变化决定。如图3.12所示,循环结构由一个条件判断表达式P和操作A构成。首先判断P是否为真,如果为真则执行操作A,操作A执行结束后再来判断P,依此类推,直到P为假,则跳出循环。循环结构有多种形式,以C语言中的while语句为例,表示形式如下:while(P)

A;图3.10 顺序结构

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

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载