第一章 计算机基础知识
考试要点
一、计算机的发展、分类及应用 1.计算机的发展
自本世纪40年代中期以来,计算机的发展经过了传统大型机阶段(电子管、晶体管、集成电路和超大规模集成电路等四代)、微机与网络阶段。
(1)第一代计算机(1946年至1958年)
第一代计算机采用电子管作逻辑器件,只能用机器语言和汇编语言编程。从1946年到1958年出现过许多著名的计算机,例如ENIAC、EDVAC、EDSAC和UNIVAC等。
ENIAC是“电子数字积分计算机”的缩写,于1946年成功地投入使用。它是人类有史以来制造的第一台电子计算机,同时标志着计算机时代的到来。不过ENIAC计算机没有存储程序的能力。
EDVAC是“电子离散变量计算机”的英文缩写,于1952年投入运行。EDVAC是在研制EˉNIAC的过程中,由美籍匈牙利数学家冯·诺伊曼提出的一种计算机模型。它的基本特点是:为了充分发挥电子元件的高速度性能而采用了二进制数据,以取代ENIAC计算机使用的十进制数据。另外,该机把指令和数据都存储到存储器中,使机器自动地执行程序。
UNIVAC是“通用自动计算机”的英文缩写,于1951年在美国人口统计局首次运行。它具有两个重要的标志:一是计算机从实验室走向社会,作为商品交付顾客使用;二是计算机从军事应用进入到各种数据处理领域中。人们认为UNIVAC标志着人类开始进入计算机时代。
EDSAC是“电子延迟存储自动计算器”的英文缩写。于1949年投入动行。EDSAC也具有存储程序的能力,它是最先实现存储程序的计算机。
(2)第二代计算机(1959年至1964年)
第二代计算机采用晶体管作逻辑器件,引入变址寄存器、浮点数据表示、中断处理等先进技术,同时出现FORTRAN、BASIC、ALGOL、COBOL等高级语言。从1959到1964年出现过许多著名的计算机,如ENIACⅡ、CDC7600、TRADIC、IBM7044等。 (3)第三代计算机(1964年至1970年)
第三代计算机采用中规模或小规模集成电路、半导体存储器等,它在系统软件和应用软件方面取得了重大进展。主流产品有IBM360/370、Honeywell6000等。 (4)第四代计算机(1970年至今)
第四代计算机采用大规模或超大规模集成电路、并行处理技术、多处理技术等,尤其是软件产品不断完善,应用软件已成为现代工业和信息社会的一个重要组成部分。主流产品有IBM4300系列、3090系列、9000系列等。 2.计算机的分类
划分计算机是根据运算速度、计算能力、输入/输出的能力、数据存储量、指令系统的规模和价格,通常将计算机分为六类。
(1)巨型机:巨型机的运算速度高达几亿次每秒以上,主存容量可达数百兆字节,字长高达64位,价格高达数千万美元,主要用于尖端科技和军事领域中。
(2)大型机:大型机速度高达100至3000万次每秒,字长32至64位,主存几十兆字节,价格数百万美元,一般用于计算机中心和计算机网络中。
(3)中型机:中型机的性能和价格在大型机和小型机之间,一般用于计算机中心和计算机网络中。
(4)小型机:小型机结构简单,成本较低,容易操作,维护方便,因而被广泛地应用于科学计算、数据处理、人工智能、自动控制和计算机辅助设计等方面。
(5)微型机:美国的Intel公司于1971年开发出第一台微型计算机MCS-4,其后微型机采用微处理器芯片、半导
体存储器和输入/输出接口板构成。它的特征是:体积小,价格低,通用灵活,使用方便,安全可靠。 (6)单片机:单片机具有极为有限的计算能力,一般用于自动控制领域。 3.计算机应用领域
计算机的迅猛发展不仅开创了科学技术发展的新纪元,也给人类社会的技术进步带来巨大的影响和推动,计算机将广泛应用于各个领域。
(1)科学计算:在科学研究和工程设计中,需要进行大量复杂的高精度的数值计算、数理统计、方程求根、结构计算、模拟分析等。
(2)实时控制:指计算机及时采集数据并进行处理,按最佳方式迅速地对控制对象加以控制,如航天飞行、宇航空间站发射、对接和测控等。代替人进行有害、危险工种的现场操作与控制等。
(3)数据处理:指对大量的数据进行加工处理,如情报、档案、图书等检索,排版印刷,办公自动化,生产、物质、财务、人事等管理都可以采用计算机来完成。
(4)计算机辅助设计:能帮助人们进行汽车、船舶、建筑、化工、大规模集成电路以及计算机自身的设计自动化,还能进一步促进人工智能的发展,如下表所示。
英 文 Computer Aided Design Computer Aided Instruction Computer Aided Test Computer Aided Management 缩 写 CAD CAI CAT CAM 中 文 计算机辅助设计 计算机辅助教育 计算机辅助测试 计算机辅助管理 二、数据单位、字符编码、汉字编码 1.计算机中的数据单位
计算机中用到的信息单位主要有位、字节、字等。
位(Bit)是计算机存储设备中的最小的信息容量单位,用0或1二进制数位来表示。如二进制数10011101是由8个位组成的,位常用b表示。
字节(Byte)是计算机的最小存储单位元,常用B表示。微型机中由8个二进制位组成一个字节。如8个二进制数“10011101”构成一个字节。一个字节可存放一个半角英文字符的编码(如ASCII码)。两个字节可存放一个汉字编码。
一个字节表示的无符号整数,可以从最小的00000000至最大的11111111,共2 8个。习惯上,2 10 (1024)个字节称为1K字节,记为1KB。随着存储容量的增大,还有下列计量单位,它们之间的关系如下: 8b=1B
2 10 B=1024B=1KB 2 20 B=1024×1024B=1MB 2 30 B=1024×1024B×1024B=1GB
字(Word)是计算机信息交换、加工、存储的基本单元。通常将组成一个字的位数叫该字的字长,用来表示数据或信息的长度。如一台计算机的字长为32位,则表示该机的一个字由4个字节组成。不同级别的计算机的字长是不同的。
为什么不取整数1000,而取一个如此难记的数字1024来表示1KB字节呢?细心的读者一定不难发现:2 10B=1024。正是由于计算机中采用的是二进制数,用1000来表示1千字节反而不方便了。 表示行字节的KB、兆字节的MB以及千兆字节的GB可以简写成K、M、G,即:1K=1KB,1M=1MB,1G=1GB。本书在以后的章节中将采用KB、MB或GB表示。 2.字符编码
①英文字符编码
在计算机中不仅是数字,所有的数据都是用二进制数来表示的。长期以来,存在各种字符编码,难于统一,为此美国国家标准局提出了一套编码方案,它叫做ASCII码(American Stanˉdard Code for Information Interchange,美国信息交换标准代码)。它收录了128个基本字符,其中包括了数字0~9,英文大小写字母,一些运算符号如+、-、*、/和一些常用符号如$、%、#等。每一个字符用一个八位二进制数来表示,如二进制的01000001表示英文大写字母A;二进制的00110001表示数字字符1等等。为了便于记忆,常将这些字符编码以十进制形式表示。请注意在ASCII编码中所列的前32个编码所表示的字符都是计算机信息传递、加工过程中使用的一些控制字符,在屏幕上是看不出来的,打印机上也打印不出来。②汉字编码
汉字是方块的,而且结构千变万化,要将它输入计算机且表示出来,确实是一个难题。经过我国科研工作者几代的努力,这个问题已被解决。
人们习惯采用一种点阵方案来表示汉字,1981年,我国制定了“中华人民共和国国家标准信息交换汉字编码”,代号为GB2312-80,这种编码称为国标码,是所有汉字编码都必须遵循的一个共同标准。GB2312-80以94个可以显示ASCII码作为基本集,共收录了汉字和图形符7445个,每个汉字用两个字节表示。汉字分为两级,一级汉字3755个,按汉字拼音字母排列;二级汉字3008个,按部首排列;非汉字字符682个。 GB2312-80规定,所有的国标汉字与符号组成一个94×94的矩阵。在此矩阵中,每行称为一个“区”,每列称为一个“位”,因此,这个矩阵实际上组成了一个有94个区(区号从01至94),每个区内有94个位(位号从01至94)的汉字字符集。一个汉字所在的区号与位号简单地组合在一起就构成了该汉字一种外码———“区位码”,它用高低两个字节来表示,高字节表示汉字所在的区号,低字节表示汉字所在的位号。汉字的区位码是唯一的。国标码与区位码之间存在如下换算关系:
国标码高字节=区码+20H 国标码低字节=位码+20H GB2312-80编码的安排情况如下: (1)1~9区非汉字字符682个; (2)10~15区,空位564个;
(3)16~55区,一级汉字,也称为常用字,按汉字的拼音排列; (4)56~87区,二级汉字,也称为次常用字,按汉字的部首排列; (5)88~94区,空位。
近年来,为便于和加强国际间信息交流,国家制字新的汉字编码标准GB-13000,国际上称为ISO/IEC10646,这种汉字编码用3个字节表示一个汉字,汉字编码容量大大增加,最大的特点是包括了中、日、韩等许多国家的文字。
汉字编码分为内码和外码。内码是计算机系统存储、处理汉字信息时所用的代码。汉字的输入码要转换成内码才能在计算机内存储和处理,一个内码占两个字节。汉字国标码的高低字节的取值范围在33~126之间,每个字节最高位都是0,正好和ASCII码相冲突,故不能作为机内码使用。国标码经过变换之后才能作为机内码使用,机内码与国标码之间的变换关系如下:内码高字节=国标码高字节+80H 内码低字节=国标码低字节+80H
外码是指输入码及打印码、显示码等,用于人与计算机进行交互(汉字输入/输出)时所用的代码。就输入码来说,国内外有几百种编码方案,常用的有区位码、拼音码、五笔字形码、自然码等。汉字是一种像形文字,每一个汉字可以看成是一个特定的图形,这种图形一般用点阵信息来描述。所有汉字的点阵信息按国标码规定的先后顺序组合在一起,就形成了汉字的字库。
三、二进制数、十六进制数、八进制数之间的转换 1.二进制的特点
尽管人类早已习惯使用十进制系统,但是在计算机内部却采用的是二进制系统。这主要是因为二进制系统具有以下优越性: (1)运算简单 (2)硬件易实现
要表示二进制数据,只需要逻辑元器件具有两个稳定状态。例如:电流的导通与阻塞,开关的接通与断开,脉冲的有与无,电压的高与低,电灯的亮与灭等。这两种状态正好用于表示二进制数中的0和1。反之,用逻辑元器
件实现十进制数的10个数码则是很困难的。 (3)工作可靠
二进制数在数据传送和加工过程中不容易出错,从而使工作安全可靠。 (4)逻辑性强
计算机工作原理是基于逻辑代数的思想,而二进制的两个数码1和0,正好代表逻辑代数中的“真”和“假”。 2.不同数制间的相互转换
由于八和十六都是二的整数倍就使得二进制数与八进制、十六进制数之间的转换相对要容易得多。显然,一位十六进制数需要用4位二进制数来表示,而一位八进制数要用3位二进制数来表示。规则:将二进制数转化为十六进制数可以将该二进制数从低位起,每4位为一组,最高一组不足4位的前面用零补齐,分别对应一个十六制数字,将这些数字由低向高位排列就得到该数的十六进制表示形式。
规则:将二进制数转化为八进制数可以将该二进制数从低位算起,每3位为一组,最高一组不足3位的,前面用零补齐,它们分别对应一个八进制数,将这些数字由低位向高位排列就得到该数的八进制表示形式。
相反地,要把一个十六进制数或八进制数转换为二进制数,可以把该十六进制数或八进制数的每一位分别用4位(或三位)二进制数来表示,不足4位时,前面应补零凑满位。
规则:将十六进制数转化为二进制数时,每位十六进制数与4位二进制数相对应,若不足4位数时应在前面补零,这样就得到该十六进制数的二进制表示。
规则:将八进制数转化为二进制数时,每一位八进制数与3位二进制数相对应,若不足3位应在前面补零,这样就得到该八进制数的二进制表示。
四、二进制数、十六进制数的算术运算 1.二进制数的运算
因为二进制数只有0、1两个数字,所以它的四则运算特别简单。其运算规则如表(a)、表(b)、表(c)与表(d)所示:
表(a) 加法 + 0 1 0 0 1 1 1 10
表(b) 减法 - 0 1 0 0 1 1 1 0
表(c) 乘法 × 0 0 0 1 0 1 0 1
表(d) 除法 / 0 0 无意义 无意义 1 0 1 1
对于加法运算,按“逢二进一”;作减法时,只要遵循“借一当二”的法则就行了。对于二进制数,由于二进制数乘数与被乘数中只有1和0两种情况,相乘运算要比十进制数相乘的“九九乘法表”法则简单多了。
二进制乘法可归结为“加法与移位”;二进制除法运算可归结为“减法与移位”。做二进制除法的方法与做十进制除法的方法相同,在列竖式计算时,够除则在商上写1,不够除则写0,按此方法依次除下去,直到余数为零为止,在除不尽的情况下,根据需要计算到指定的精度即可。 2.十六进制数的运算
十六进制数的运算可以采用先把该十六进制数转换为十进制数,经过计算后再把结果转换为十六进制数据的方法,但这样做比较繁琐。其实,按照逢16进1的规则,直接用十六进制数来计算也是很方便的。
(1)十六进制加法:当2个1位数之和S小于16时,与十进制数同样处理,如2个1位数之和S≥16时,则应用S大于等于16及进位1来取代S。
(2)十六进制数的减法也可以用十进制类似,够减时可直接相减,不够减时服从向高位错1为16的规则。 (3)十六进制数的乘法可以用十进制数的乘法规则来计算,但结果必须用十六进制数来表示。 (4)十六进制数的除法可以根据其乘法和减法规则处理,这里不再赘述。 五、二进制的逻辑运算
逻辑,是指“条件”与“结论”之间的关系。因此,逻辑运算是指对“因果关系”进行分析的一种运算,运算结果并不表示数值大小,而是表示逻辑概念成立还是不成立。
计算机中的逻辑关系是一种二值逻辑。二值逻辑很容易用二进制“0”或“1”表示,例如“真”与“假”、“是”与“否”、“成立”与“不成立”等。若干位二进制数组成的逻辑数据,位与位之间无“权”的内在联系。对两个逻辑数据进行运算时,每位之间相互独立,运算是按位进行的,不存在算术的进位与借位,运算结果也是逻辑数据。三种基本的逻辑关系
在逻辑代数中有三个基本的逻辑关系:与、或、非。其他复杂的逻辑关系均可由这三个基本逻辑关系组合而成。 (1)“与”逻辑
做一件事情取决于多种因素时,当且仅当所有因素都满足时才去做,否则就不做,这种因果关系称为“与”逻辑。用来表示和推演“与”逻辑关系的运算称为“与”算。常用·、∧、∩或AND等运算符表示,“与”运算规则两个二进制数进行与运算是按位进行的。
两个逻辑变量a、b进行与运算,在数学上可记为F=a AND b,F是A、B的逻辑函数。对于F=a AND B,由“与”运算规则知:当且仅当A=1、B=1时,才有F=1,否则F=0。 (2)“或”逻辑。
做一件事决于多种因素时,只要其中有一个因素得到满足就去做,这种因果关系称“或”逻辑。“或”运算常用+、∨、∪和OR等运算符表示,“或”运算规则两个二进制数进行或运算是按位进行的。