第1章计算机基础知识1.1计算机概述•1.1.1计算机发展简史1.计算工具的演变与发展•从远古到现代,人类的计算工具先后出现了手动计算工具、机械计算工具、机电计算工具,最后才进步到电子计算工具。2.现代电子计算机的产生•(1)ABC计算机•1939年,美国依阿华州大学数学物理学教授约翰·阿塔纳索夫(JohnAtanasoff)和他的研究生贝利(CliffordBerry)一起研制了一台称为ABC(Atanasoff-Berry-Computer)的电子计算机。由于经费的限制,他们只研制了一个能够求解包含30个未知数的线性代数方程组的样机。在阿塔纳索夫的设计方案中,第一次提出采用电子技术来提高计算机的运算速度。这是最早的专用电子计算机。在后来的ENIAC研制中,借鉴了ABC的设计方案。复制的ABC计算机•(2)电子数字积分计算机ENIAC•第二次世界大战中,美国宾夕法尼亚大学物理学教授约翰·莫克利(JohnMauchly)和他的研究生普雷斯帕·埃克特(PresperEckert)受美国陆军军械部的委托,为计算火炮的弹道和射击表启动了研制ENIAC(ElectronicNumericalIntegratorandComputer)的计划,1946年2月15日,这台标志人类计算工具历史性变革的巨型机器宣告竣工。ENIAC是一个庞然大物,共使用了18000多个电子管、1500多个继电器、10000多个电容和7000多个电阻,占地167平方公尺,重达30吨。ENIAC的最大特点就是采用电子器件代替机械齿轮或电动机械来执行算术运算、逻辑运算和存储信息,因此,同以往的计算机相比,ENIAC最突出的优点就是高速度。ENIAC每秒能完成5000次加法,300多次乘法,比当时最快的计算工具快1000多倍。•ENIAC是第一个现代通用电子数字计算机,它可被用于解决一大类问题。ENIAC的出现标志着电子计算机(以下称计算机)时代的到来。ENIAC•(3)冯·诺依曼体系结构•1944年,普林斯顿大学数学教授,美籍匈牙利数学家冯·诺依曼在一个偶然的机会了解到ENIAC的研制工作,当时他正为美国研制原子弹的曼哈顿计划中的复杂的科学计算所困扰,因此冯·诺依曼参加了ENIAC的研制小组。在了解到ENIAC的缺点,并与研制人员讨论后,1945年6月,冯·诺依曼(VonNeumann)发表了一个全新的“存储程序通用电子计算机方案”,确立了现代计算机的基本结构,其中包含三个重要的思想:•(1)计算机至少应由运算器、控制器、存储器、输入设备、输出设备五个基本功能部分组成。•(2)采用二进制数形式表示计算机的指令和数据。•(3)将程序(一系列指令的集合)和数据放在存储器中,由程序控制计算机自动执行,即“存储程序控制”。•迄今为止,大部分计算机仍基本上遵循冯·诺依曼结构。•3.现代计算机的不断发展•ENIAC的诞生标志着现代计算机的产生和计算机时代的开始。从ENIAC问世开始,人们一般认为现代计算机的发展历经了4代,现在正向新一代迈进。•第一代(1946—1957年)——电子管时代•这一时代的计算机具备如下一些主要技术指标和特点。•(1)元器件:采用真空电子管和继电器,内存储器采用水银延迟线,外存储器采用纸带、卡片、磁带、磁鼓和磁芯。•(2)软件:使用线路和机器语言编程。•(3)特点:计算机体积大,造价高,运算速度慢,存储容量小,编程繁琐。•(4)应用范围:•(5)代表产品:ENIAC、UNIVCAI、EDVAC、IBM70X•第二代(1958—1964年)——晶体管时代•1947年,美国贝尔实验室的肖克利、巴丁和布拉顿组成的研究小组发明了晶体管。晶体管的问世,是20世纪的一项重大发明,是微电子革命的先声。同时,它的出现又为后来集成电路的诞生吹响了号角。晶体管比电子管功耗少、体积小、质量轻、工作电压低、工作可靠性好。1954年,贝尔实验室制成了第一台晶体管计算机——TRADIC,使计算机体积大大缩小。1957年,美国研制成功了全部使用晶体管的计算机,第二代计算机诞生了。第二代计算机的主要特点分别介绍如下。•(1)元器件:采用晶体管;内存储器采用磁芯存储器,外存储器增加了磁盘;•(2)软件:出现了监控程序和管理软件;出现了高级语言,如FORTRAN、Cobol等。•(3)特点:计算机体积减小,成本降低,功能增强,可靠性提高;运算速度提高到每秒几十万次;存储容量扩大;由于程序设计语言的出现,使编程更加方便。•(4)应用范围:科学计算、数据处理与事务管理。•(5)代表产品:UNIVACII、IBM7000系列、ATLAS•第三代(1965—1970年)——中、小规模集成电路时代•20世纪60年代初期,美国的基尔比和诺伊斯发明了集成电路,引发了电路设计革命,第三代计算机诞生了。第三代计算机的主要特点分别•(1)元器件:小规模和中等规模集成电路,磁芯存储器容量增加,外部设备大量出现。•(2)软件:出现了操作系统,程序设计语言的种类进一步增多。•(3)特点:体积进一步减小,功能进一步增强,可靠性进一步提高;运算速度达到每秒几百万次;存储容量进一步扩大;计算机向标准化、多样化、通用化与系列化方向发展。•(4)应用范围:•(5)代表产品:IBMSystem/360、PDP11、NOVA•第四代(1971年至今)——大规模和超大规模集成电路时代•第四代计算机的主要特点分别介绍如下。•(1)元器件:采用大规模和超大规模集成电路;半导体存储器代替了磁芯存储器;出现了光盘、U盘等存储设备。•(2)软件:操作系统更加完善,种类更加齐全,程序设计语言由非结构化向结构化和面向对象方向转变。•(3)特点:计算机制造和软件生产形成产业化,计算机网络化是这个时代的一大特征。•(4)应用范围:已经普及、深入到各行各业之中。•(5)代表产品:IBM4300系列、CRAY系列、微型计算机、网络计算机。•微型计算机是大规模和超大规模集成电路发展的一大成果。大规模集成电路的一个重要特点是将中央处理器(CPU)制作在一块电路芯片上,这种芯片习惯上称为微处理器。根据微处理器的集成规模和处理能力,又形成了微型机的不同发展阶段。新一代计算机的发展趋势计算机的发展趋势可归结在如下几个方面:•⑴超级计算机。•⑵微型计算机。•⑶智能计算机。•⑷普适计算机。•⑸网络与网格。•⑹新型计算机。1.1.2计算机的分类计算机的种类其实非常多,我们大部分人日常接触到的计算机叫微型计算机。•1.按信息的形式和处理方式划分•(1)电子数字计算机•(2)电子模拟计算机•(3)数模混合计算机•2.按使用范围划分•(1)通用计算机•(2)专用计算机•3.按计算机规模和处理能力划分•(1)巨型计算机•(2)大/中型计算机•(3)小型计算机•(4)微型计算机•(5)工作站•(6)服务器•目前,微型计算机与工作站、小型计算机乃至中、大型机之间的界限已经愈来愈模糊。无论按哪一种方法分类,各类计算机之间的主要区别是运算速度、存储容量及机器体积等。•1.1.3计算机的特点•1.运算速度快•大型、巨型计算机已经由20世纪50年代初的几万次每秒的运算速度发展到1976年1亿次每秒及1985年前后的100亿次每秒;90年代初达到了1万亿次每秒;1996年美国推出了2.4万亿次每秒的巨型计算机;2010年,我国研发的曙光“星云”巨型机的速度已超千万亿次每秒。•2.计算精度高•例如,圆周率的计算,发明计算机前的1500多年中经过数代科学家的人工计算,其精度只能达到小数点后的几百位,当第一台计算机诞生后,利用计算机计算就可达到2000位,目前计算精度已达到上亿位。•3.存储容量大•目前微型计算机的内存储器的容量已达到2~8GB,用若干张光盘甚至可以保存一座图书馆的全部内容。•4.具有逻辑判断功能•计算机不仅能进行计算,还具有逻辑判断能力实现推理和证明,并能根据判断的结果自动决定以后执行的命令,因而能解决各种各样的问题。例如,百年数学难题“四色猜想”(任意复杂的地图,使相邻区域的颜色不同,最多只用四种颜色即能完成),1976年美国两位科学家用IBM-370计算机进行了上百亿次的判断连续运算1200小时证明了此难题,当时震惊世界数学界。•5.高度自动化•人们把需要计算机处理的问题编成程序存储在计算机中,当向计算机发出运行指令后,计算机便在该程序的控制下自动按规定步骤完成指定的任务。•1.1.4计算机的应用•1.科学计算(或称为数值计算)•2.数据处理•3.过程控制•4.人工智能•5.计算机辅助工程•6.电子商务•7.娱乐•8.网络通信1.2计算机中信息的表示与存储•数据是对客观事物的符号表示,如数值、文字、声音、图形、图像等都是不同形式的数据;信息则是数据经过处理后的结果,是经过组织后,有意义、有用处的数据,数据是信息的载体。计算机做的一个重要工作就是将数据转换成信息。•数据和信息在计算机内部采用二进制来保存。无论是指令还是数据,若想存入计算机中,都必须采用二进制数编码形式,即使是图形、图像、声音等信息,也必须转换成二进制,才能存入计算机中。•1.2.1数据的存储单位•计算机使用二进制来表示数据时,涉及位、字节、字三个基本数据单位。•1.位(bit)•表示一位二进制信息,可存放一个0或1。位是计算机中存储信息的最小单位。•2.字节(Byte)•计算机中表示存储容量的基本单位是字节(B),由8个二进制位组成。表示存储容量的单位还有KB、MB、GB、TB、PB、EB等,它们的换算如下:•KB(Kilobyte,千字节):1KB=1024B=210B•MB(Megabyte,兆字节):1MB=1024KB=220B•GB(Gigabyte,吉字节):1GB=1024MB=230B•TB(Trillionbyte,太字节):1TB=1024GB=240B•PB(Petabyte,拍字节):1PB=1024TB=250B•EB(Exabyte,艾字节):1EB=1024PB=260B•3.字(word)•一个字通常由一个或多个字节构成。计算机进行数据处理时,一次存取、加工和传送的数据长度称为字长。计算机的字长决定了CPU一次操作所能处理的数据的长度。由此可见,计算机的字长越长,其性能越优越。•1.2.2数制•1.基本概念•下面介绍关于数制的一些基本概念。•数码:一种进位计数制各数位上所允许的有限的几个数字符号。•基数:所允许的数字符号的个数就是计数制的基数。•位权:人们通常采用有权编码表示数字,即同一个数码处在不同数位时所代表的数值不同。每个数码所表示的值就等于该数码本身乘以一个与所在数位有关的常数,这个常数就称为位权,简称“权”。•常用的几种进位制(十进制、二进制、八进制和十六进制)的基本特点如表所示。•十六进制中的数码使用了符号A、B、C、D、E、F,分别对应十进制中的10、11、12、13、14、15。在书写时,为了区别不同进制的数,可以使用以下3种书写格式。•10001101(2)、765(8)、12.7(10)、AB.7(16)•(10001101)2、(765)8、(12.7)10、(AB.7)16•10001101B、765O、12.7D、AB.7H•这里,字母B、O、D、H分别表示二进制、八进制、十进制和十六进制。•2.按权展开式•按权展开式就是将任意进制的数表示成该数每个位置上的数码乘以该位置上的权值。任何进制的数都可以按其位权进行展开。例如:945.7=9×102+4×101+5×100+7×10-1•(110.011)2=1×22+1×21+0×20+0×2-1+1×2-2+1×2-3•1.2.3不同数制的数之间的转换•1.非十进制数转换为十进制数•非十进制数转换为十进制数的方法就是按权展开。例如:•2.十进制数转换为非十进制数•十进制数转换为非十进制数的方法:整数部分采用除基数取余法、小数部分采用乘基数取整法,分别转换后组合得到。•除基数取余法:逐次除以基数,每次求得的余数即为转换后的数的整数部分各位的数码,直到商为0。•乘基数取整法:逐次乘以基数