分享

计算机文化基础(第九版)带重点第一章教材原文(二)

 新用户1687PmYw 2020-10-24

1.3  计算机中信息的表示

1.3.1 数制及其转换(必考)

数制也称为计数制,是用一组固定的符号和统一的规则来表示数值的方法。人们通常采用的数制有十进制、二进制、十六进制和八进制。但计算机只认识二进制。用进位的原则进行计数称为进位计数制,简称进制。在一般情况下,人们习惯于用十进制来表示数。其实,在现实生活中也使用其他进制,如用六十进制计时,用十二进制作为月到年的进制等。在计算机科学中,不同情况下允许采用不同数制表示数据。在计算机内用二进制数码表示各种数据,但是在输入、显示或打印输出时,人们习惯于用十进制计数。在计算机程序编写中,有时还采用八进制和十六进制,这样就存在着同一个数可用不同的数制表示及它们相互之间转换的问题。在介绍各种数制之前,首先介绍数制中的几个名词术语。

数码:一组用来表示某种数制的符号。如:1234ABC、Ⅰ、Ⅱ、Ⅲ、Ⅳ等。

基数:数制所使用的数码个数称为“基数”或“基”,常用“R”表示,称R进制。如二进制的数码是01,基为2

位权:指数码在不同位置上的权值。在进位计数制中,处于不同数位的数码代表的数值不同。如十进制数111,个位数上的1权值为100,十位数上的1权值为101,百位数上的1权值为102

1.常用的进位计数制

1十进制(Decimal System

十进制数是人们最熟悉的一种进位计数制,它由0、1、2、…、8、9这10个数码组成,即基数为10。十进制的特点为:逢十进一,借一当十。一个十进制数各位的权是以10为底的幂。

2二进制(Binary System

01两个数码组成,即基数为2。二进制的特点为:逢二进一,借一当二。一个二进制数各位的权是以2为底的幂。

3八进制(Octal System

012345678个数码组成,即基数为8。八进制的特点为:逢八进一,借一当八。一个八进制数各位的权是以8为底的幂

4十六进制(Hexadecimal System

012、…、9ABCDEF16个数码组成,即基数为16。十六进制的特点为:逢十六进一,借一当十六一个十六进制数各位的权是以16为底的幂

在书写时,一般用以下两种数制表示方法:

1)把一串数用括号括起来,再加这种数制的下标。如(1016,(1001002,(1208。对于十进制可以省略

2)用进位制的字母符号B(二进制)、O(八进制)、D(十进制)、H(十六进制)来表示。注意:在不至于产生歧义时,可以不注明十进制数的进制

如:十六进制数A2A0C可表示为A2A0CH

1-1  十进制、二进制、八进制、十六进制之间的对应关系

十进制

二进制

八进制

十六进制

十进制

二进制

八进制

十六进制

0

0

0

0

9

1001

11

9

1

1

1

1

10

1010

12

A

2

10

2

2

11

1011

13

B

3

11

3

3

12

1100

14

C

4

100

4

4

13

1101

15

D

5

101

5

5

14

1110

16

E

6

110

6

6

15

1111

17

F

7

111

7

7

16

10000

20

10

8

1000

10

8

17

10001

21

11

2数制的转换(必考)本节全部是重点,要熟练掌握二进制/八进制/十进制与十六进制之间各自的转换规律,看懂下方例题,多练习,本部分不再标注,全部重点关注

1).R进制转换为十进制

    方法是:将其他数制按权展开,然后各项相加,就得到了相应的十进制数。

    例如:我们熟悉十进制的(1234. 5)10 =1 ×103 +2 ×102+3×101 +4×100 +5×l0-1=1234.5,这里的数字“2”在百位上,就代表有两个100,即2×102,以此类推。那么我们就可以用这样的方法来算R进制数相对应的十进制。

    (10110. 1)2  =1× 24 +0 × 23 +1 ×22 +1×21 +0 ×20 +1×2-1

               = (22. 5)10

    (456.45)8   =4 × 82 +5 × 81+6 ×80 +4 ×8-1+5 ×8-2

               = (302. 578125)10

    (2AF)16     =2× 162 +A ×161 +F ×160

               =2 × 162 +10×16 +15×1

               = (687)10

2).十进制数转换为R进制数

    方法是:R进制的整数部分和小数部分分别对待,整数部分采用“除R取余”的方法,先计算出低位。小数部分采用“乘R取整”的方法,先计算出高位。

    例如:依据下面的计算方法,我们得到(143. 8125)10=(10001111. 1101)2

    

    十进制转化为八进制或十六进制,只需将除数或乘数换成816就可以了。

3)二进制、八进制、十六进制数转化为十进制数

对于任何一个二进制数、八进制数、十六进制数,可以写出它的按权展开式,再按十进制进行计算即可。

例如:

1111.112 = 1×231×221×211×201×2-11×2-2 = 15.75

A10B.816 = 10×1631×1620×16111×1608×16-1= 41227.5

4)十进制数转化为二进制数

十进制数的整数部分和小数部分在转换时需作不同的计算,分别求值后再组合。对于整数部分采用除2取余法,即逐次除以2,直至商为0,得出的余数倒排,即为二进制各位的数码。小数部分采用乘2取整法,即逐次乘以2,从每次乘积的整数部分得到二进制数各位的数码。

例:将十进制数100.125转化为二进制数。

先对整数100进行转换:

由上得出,100D = 1100100B。可通过按权展开式检验:

1×261×250×240×231×220×210×20 = 64324 = 100

对于小数部分0.125的转换:

                       0.125×2 = 0.250               …… a-1

                       0.25×2 = 0.5                    …… a-2

                       0.5×2 = 1                         …… a-3

由上得出,0.125D = 0.001B

整数和小数部分组合,得出:100.125D =1100100.001B

5)二进制数与八进制数的相互转换

二进制数转换成八进制数的方法是:将二进制数从小数点开始,对二进制整数部分向左每3位分成一组,对二进制小数部分向右每3位分成一组,不足3位的分别向高位或低位补0凑成3位。每一组有3位二进制数,分别转换成八进制数码中的一个数字,全部连接起来即可。

例:把二进制数11111101.101转化为八进制数。

二进制3位分组

011

111

101.

101

转换为八进制数

3

7

5.

5

所以,11111101.101B = 375.5O

反过来,将八进制数转换成二进制数,只要将每一位八进制数转换成相应的3位二进制数,依次连接起来即可。

6)二进制数与十六进制数的相互转换

二进制数与十六进制数的相互转换方法和二进制数与八进制数的转换类似。二进制数转换成十六进制数,只要把每4位分成一组,再分别转换成十六进制数码中的一个数字,不足4位的分别向高位或低位补0凑成4位,全部连接起来即可。反之,十六进制数转换成二进制数,只要将每一位十六进制数转换成4位二进制数,依次连接起来即可。

例:将10110001.101B转换为十六进制数。

二进制4位分组

1011

0001.

1010

转换为十六进制数

B

1.

A

所以,10110001.101B = B1.AH

其他数制之间的转换可以通过二进制数作为中间桥梁,先转化为二进制数,再转化为其他进制数。

3二进制的运算规则

在计算机中,采用二进制数可以非常方便地实现各种算术运算和逻辑运算。

1)算术运算规则

加法规则:0+0 = 00+1 = 11+0 = 11+1 = 10(向高位有进位)。

减法规则:0-0 = 010-1 = 1(向高位借位);1-0 = 11-1 = 0

乘法规则:0 × 0 = 00 × 1 = 01 × 0 = 01 × 1 = 1

除法规则:0/1 = 01/1 = 1

2)逻辑运算规则

逻辑与运算(AND):00 = 001 = 010 = 011 = 1

逻辑或运算(OR):00 = 001 = 110 = 111 = 1

逻辑非运算(NOT):1 = 00 = 1

逻辑异或运算(XOR):

逻辑异或运算即实现按位加的功能,只有当两个逻辑值不相同时,结果才为1

       4. 计算机中数的表示

1.正数与负数

    计算机只认识二进制数01,所以在计算机中数的符号也是用数码来表示的,一般用“0”表示正数的符号,“1”表示负数的符号,并放在数的最高位。

    例如:(01011)2=(+11)10,(11011)2=(-11)10

    计算机中数的表示有三种--原码、补码与反码。数在计算机中都是以补码的形式存储的。

    一个正数的原码、补码与反码是相同的,是其本身;

    负数的反码是相对应的正数按位取反;

    负数的补码等于反码加1

    例如:(10)10=(1010)2,所以(10)10的原码、反码、补码均为:01010

        -1010 =- 10102,则(-1010的原码、反码、补码分别为:

    原码:11010

    反码:10101(对01010按位取反);

    补码:10110( 10101+1)

2.定点数和浮点数

   (1)定点数表示法

    在机器中,小数点位置固定的数称为定点数,一般采用定点小数表示法,即小数点固定在符号位与最高位之间。有时也采用定点整数表示法,此时将小数点固定在数的最低位的后面。定点数的运算规则比较简单,但不适宜对数值范围变化比较大的数据进行运算。

   (2)浮点数表示法

    浮点数可以扩大数的表示范围。浮点数由两部分组成:一部分用以表示数据的有效位,称为尾数;一部分用于表示该数的小数点位置,称为阶码

1.3.2  信息的编码

1计算机中数据的单位

计算机中的数据都要占用不同的二进制位。为了便于表示数据量的多少,引入数据单位的概念。

1位(bit

位,简记为b也称为比特,是计算机存储数据的(最小单位)。一个二进制位只能表示01,要想表示更大的数,就得把更多的位组合起来。每增加一位,所能表示的数就增大一倍。

2字节(Byte

字节来自英文Byte简记为B。规定1B=8bit。字节是存储信息的基本单位。微型机存储器是由一个个存储单元构成的,每个存储单元的大小就是一个字节,所以存储器容量大小也以字节数来度量。我们还经常使用其他的度量单位,即KBMBGBTB,其换算关系为:

1KB = 210 B1MB = 220 B1GB = 230 B1TB = 240 B

3字(Word

计算机处理数据时,CPU通过数据总线一次存取、加工和传送的数据称为字,计算机的运算部件能同时处理的二进制数据的位数称为字长。一个字通常由一个字节或若干个字节组成。由于字长是计算机一次所能处理的实际位数长度,所以字长)是衡量计算机性能的一个重要指标。字长越长,速度越快,精度越高。不同微处理器的字长是不同的,常见的微处理器字长有8位、16位、32位和64等。

2.数值的表示

在计算机中,所有数据都以二进制的形式表示数的正负号也用“0”和“1”表示。通常规定一个数的最高位作为符号位,“0”表示正,“1”表示负。这种采用二进制表示形式的连同数符一起代码化了的数据,在计算机中统称为(机器数)或(机器码),而与机器数对应的用正、负符号加绝对值来表示的实际数值称为真值。例如:作为有符号数,机器数01111111的真值是+1111111,也就是127

为了在计算机的输入输出操作中能直观迅速地与常用的十进制数相对应,产生了用二进制代码表示十进制数的编码方法,简称BCD码或8421编码。例如,对于(23910的编码如下:

十进制数

2

3

9

8421编码

0010

0011

1001

3.文字信息的表示

计算机处理的对象必须是以二进制表示的数据。具有数值大小和正负特征的数据称为数值数据,而对于文字、声音、图形等数据,并无数值大小和正负特征,称为非数值数据。两者在计算机内部都是以二进制形式表示和存储的。

非数值数据又称为字符或符号数据。由于计算机只能处理二进制数,这就需要用二进制的01按照一定的规则对各种字符进行编码。

1字符编码

目前采用的字符编码主要是ASCII,它是AmericanStandard Code for Information Interchange(美国标准信息交换代码)的缩写,已被国际标准化组织(ISO)采纳,作为国际通用的信息交换标准代码。ASCII码是一种西文机内码,有7ASCII码和8ASCII码两种,7ASCII码称为标准ASCII码,8ASCII码称为扩展ASCII7位标准ASCII码用一个字节(8位)表示一个字符,并规定其最高位为0,实际只用到7位,因此可表示128个不同字符。其中包括数字0926个大写英语字母、26个小写英语字母,以及各种标点符号、运算符号和控制命令符号等。同一个字母的ASCII值小写字母比大写字母大32。标准字符表参见《计算机文化基础实验教程》附录。

2汉字编码

所谓汉字编码,就是采用一种科学可行的办法,为每个汉字编一个唯一的代码,以便计算机辨认、接收和处理。早期的计算机无法处理汉字,但随着计算机在汉语言环境中的应用,我国计算机科学家也开始研究汉字信息的表达和处理的问题。经过30多年的发展,目前汉字的处理和信息表示已经相当成熟。

1汉字交换码

由于汉字数量极多,一般用连续的两个字节(16位)来表示一个汉字。1980年,我国颁布了第一个汉字编码字符集标准,即《信息交换用汉字编码字符集基本集》(GB2312-80)。该标准编码简称国标码,是我国内陆及新加坡等海外华语区通用的汉字交换码。GB2312-80收录了6763个汉字以及682个符号,共7445个字符,奠定了中文信息处理的基础。

199512月,汉字扩展内码规范──GBK1.0编码方案发布。2000年,GBK18030取代GBK1.0成为正式的国家标准。GBK18030编码完全兼容GB2312-80标准,是在GB2312-80标准基础上的内码扩展规范,共收录了27484个汉字,同时收录了藏文、蒙文、维吾尔文等主要的少数民族文字,现在的Windows平台必须支持GBK18030编码。

2汉字机内码

国标码GB2312不能直接在计算机中使用,因为它没有考虑与基本的信息交换代码ASCII码的冲突。比如:“大”的国标码是3473H,与字符组合“4S”的ASCII码相同,“嘉”的汉字编码为3C4EH,与码值为3CH4EH的两个ASCII字符“<”和“N”混淆。为了能区分汉字与ASCII码,在计算机内部表示汉字时,把交换码(国标码)两个字节的最高位改为1,称为机内码。这样,当某字节的最高位是1时,必须和下一个最高位同样为1的字节合起来,代表一个汉字,而某字节的最高位是0时,就代表一个ASCII码字符,以和ASCII码相区别。

机内码是计算机内处理汉字信息时所用的汉字代码。在汉字信息系统内部,对汉字信息的采集、传输、存储、加工运算的各个过程都要用到机内码。机内码是真正的计算机内部用来存储和处理汉字信息的代码。

3汉字字形码

汉字字形码是用来将汉字显示到屏幕上或打印纸上所需要的图形数据。

汉字字形码记录汉字的外形,是汉字的输出形式。记录汉字字形通常有点阵法和矢量法两种方法,分别对应两种字形编码:点阵码和矢量码。所有的不同字体、字号的汉字字形构成汉字库。

点阵码是一种用点阵表示汉字字形的编码,它把汉字按字形排列成点阵,常用的点阵有16 × 1624 × 2432× 32或更高。汉字字形点阵构成和输出简单,但是信息量很大,占用的存储空间也非常大,一个16 × 16点阵的汉字要占用32个字节,一个32 × 32点阵的汉字则要占用128字节,而且点阵码缩放困难且容易失真。

矢量码使用一组数学矢量来记录汉字的外形轮廓,矢量码记录的字体称为矢量字体或轮廓字体。这种字体很容易放大缩小且不会出现锯齿状边缘,可以任意地放大缩小甚至变形,屏幕上看到的字形和打印输出的效果完全一致,且节省存储空间。如PostScript字库、TrueType字库就是这种字形码。

4汉字输入码

将汉字通过键盘输入到计算机中采用的代码称为汉字输入码,也称为汉字外部码(外码)。目前我国的汉字输入码编码方案有上千种,在计算机上常用的也有多种。根据编码规则是按照读音还是字形,汉字输入码可分为流水码、音码、形码和音形结合码四种智能ABC、微软拼音、搜 狗拼音和谷歌拼音等汉字输入法为音码,五笔字型为形码。音码借助汉语拼音编码,重码多、单字输入速度慢,但容易掌握;形码重码较少,单字输入速度较快,但学习和掌握较困难。

目前,汉字输入方法除了用键盘外,还可以使用手写、语音和扫描识别等多种方式,但键盘输入仍是目前最主要的汉字输入方法。汉字输入码的编码原则是应该易于接受、学习、记忆和掌握,重码少,码长尽可能短。

1.4  计算机系统

   一个完整的计算机系统由硬件系统和软件系统两大部分组成,并按照“存储程序”的方式工作。

1.4.1计算机工作原理

    1.指令

  指令是指示计算机执行某种操作的命令,它由一串二进制数码组成,这串二进制数码包括操作码和地址码两部分。操作码规定了操作的类型,即进行什么样的操作;地址码规定了要操作的数据(操作对象)存放在什么地址中,以及操作结果存放到哪个地址中去。计算机指令和数据都是采用二进制形式编码的,二进制编码只需要两个状态实现01的表示就可以,系统简单稳定,物理实现容易。

一台计算机有许多指令,作用也各不相同,所有指令的集合称为计算机指令系统。计算机操作系统不同,指令系统也不同,目前常见的指令系统有复杂指令系统(CISC)和精简指令系统(RISC),相比而言,RISC的指令格式统一,种类较少,寻址方式也比复杂指令集少,处理速度提高很多。

目前常见的x86系列的CPUCISC而中高档服务器、工作站等大多采用RISC指令的CPU,如Power PC处理器、SPARC处理器等。

2.“存储程序”工作原理

计算机能够自动完成运算或处理过程的基础是“存储程序”工作原理。“存储程序”工作原理是美籍匈牙利科学家冯·诺依曼(Von Neumann)提出来的.故称为冯·诺依曼原理,其基本思想是存储程序与程序控制。存储程序是指人们必须事先把计算机的执行步骤序列(即程序)及运行巾所需的数据,通过一定方式输入并存储在计算机的存储器中;程序控制是指计算机运行时能自动地逐一取出程序中的一条条指令,加以分析并执行规定的操作。

到目前为止,尽管计算机发展到了第四代,但其基本工作原理仍然没有改变。根据存储程序和程序控制的概念,在计算机运行过程中,实际上有两种信息在流动。一种是数据流,这包括原始数据和指令,它们在程序运行前已经预先送至内存中,在运行程序时数据被送往运算器参与运算,指令被送往控制器。另一种是控制信号,它是由控制器根据指令的内容发出的,指挥计算机各部件执行指令规定的各种操作或运算,并对执行流程进行控制。这里的指令必须为该计算机直接理解和执行。

3计算机的工作过程

计算机系统的各个部件能够有条不素地协调进行工作,都是在控制器的控制下完成的。计算机的工作过程可以归结为以下几步:

(1)取指令。即按照指令计数器中的地址,从内存储器中取出指令,并送到指令寄存器中。

(2)分析指令。即对指令寄存器中存放的指令进行分析,确定执行什么操作,并由地址码确定操作数的地址。

(3)执行指令。即根据分析的结果,由控制器发出完成竣操作所需要的一系列控制信息,去完成该指令所要求的操作。

(4)上述步骤完成后,指令计数器加l,为执行下一条指令做好准备

 1.4.2计算机硬件系统

    计算机硬件是指计算机系统中由电子、机械和光电元件组成的各种计算机部件和计算机设备这些部件和设备依据计算机系统结构的要求构成一个有机整体,称为计算机硬件系统。未配置任何软件的计算机叫裸机,它是计算机完成工作的物质基础

    冯·诺依曼提出的“存储程序”工作原理决定了计算机硬件系统由五个基本组成部分组成,即运算器、控制器、存储器输入设备和输出设备。几十年来,尽管计算机硬件在各方面都发生了翻天覆地的变化,但计算机的基本结构没有变化。图12所示为构成计算机硬件系统的五大组成部分的框图。下面分别介绍组成计算机的各个部件及其功能。


1.输入设备

输入设备的主要功能是,把原始数据和处理这些数据的程序转换为计算机能够识别的二进制代码,通过输入接口输入到计算机的存储器中,供CPU调用和处理。常用的输入设备有鼠标、键盘、扫描仪、数字化仪、数码摄像机、条形码阅读器、数码相机和A/D转换器等

2.运算器

运算器由算术逻辑运算单元(ALU, Arithmetic Logic Unit)和寄存器等组成。算术逻辑运算部件完成加、减、乘、除等四则运算以及与、或、非和移位操作;寄存器用来提供参与运算的操作数,并存放运算的结果。

运算器是计算机巾执行数据处理指令的器件。运算器负责对信息进行加工和运算,它的速度决定了计算机的运算速度。运算器的功能除了对二进制编码进行算术运算、逻辑运算外,还可以进行数据的比较、移位等操作。参加运算的数(称为操作数)由控制器指示从存储器或寄存器中取出并送到运算器中。

3.控制嚣

控制器是整个计算机系统的控制中心,它指挥计算机各部分协调工作,保证计算机按照预先规定的目标和步骤有条不紊地进行操作及处理。

控制器从内存储器中顺序取出指令,并对指令代码进行翻译,然后向各个部件发出相应的命令,完成指令规定的操作n它一方面向各个部件发出执行指令的命令,另一方面又接收执行部件向控制器发回的有关指令执行情况的反馈信息,根据这些信息来决定下一步发出哪些操作命令。这样逐一执行一系列的指令,就使计算机能够按照这…系列的指令组成的程序的要求自动完成各项任务。因此,控制器是指挥和控制计算机各个部件进行工作的“神经中枢”。

通常把控制器和运算器合称为中央处理器(CPU,Central Processing Unit)。工业生产中总是采用最先进的超大规模集成电路技术来制造中央理器,即CPU芯片。它是计算机的核心部件,它的工作速度等性能对计算机的整体性能有决定性的影响。

4.存储器

存储器是计算机中用于存放程序和数据的部件,并能在计算机运行过程中高速,自动地完成程序或数据的存取。

存储器是具有“记忆”功能的设备。由具有两种稳定状态的物理器件(也称为记忆元件)存储信息。记忆元件的两种稳定状态分别表示为“O”和“1”。存储器由成千上万个存储单元构成.每个储单元存放一定位数(微机上为8位)的二进制数·每个存储单元都有唯一的编号,称为存储单元的地址。存储单元是基本的存储单位,不同的存储单元是用不同的地址来区分的。

计算机采用按地址访问的方式到存储器中存数据和取数据,计算机中的程序在执行的过程中'每当需要访问数据时,就向存储器送去指定位置的地址,同时发出一个“存”命令或者“取”命令(伴以待存放的数据)。计算机在运算之前,程序和数据通过输入设备送八存储器,计算机开始工作之后,存储器还要为其他部件提供信息,也要保存中间结果和最终结果,因此,存储器的存入和取出的速度是计算机系统的一个非常重要的性能指标。

存储器分为内存储器和外存储器两大类,简称内存和外存。内存储器又称为主存储器,外存储器又称为辅助存储器。常见存储器的分类如图1-3所示


1-3     存储器的分类

1)内存

内存是cPu可直接访问的存储器,是计算机中的工作存储器,当前正在运行的程序与数据都必须存放在内存中。计算机工作时,所执行的指令及操作数都是从内存中取出的,处理的结果也放在内存中。内存储器和CPU一起构成了计算机的主机部分。

内存储器分为ROMRAMCache,下面分别予以介绍。

(1)只读存储器(ROM

ROM中的数据或程序一般是在将ROM装入计算机前事先写好的。一般情况下,计算机工作过程中只能从ROM中读出事先存储的数据,而不能改写。ROM常用于存放固定的程序和数据,并且断电后仍能长期保存。ROM的容量较小,一般存放系统的基本输入输出系统(BIOS)等。

(2)随机存储器(RAM)

随机存储器的容量与ROM相比要大得多,目前微机一般配置l GB左右。CPURAM中既可读出信息又可写人信息,但断电后所存的信息就会丢失

微机中的内存一般指随机存储器(RAM目前常用的内存有SDRAMDDRSDRAMDDR2DDR3

(3)高速缓存(Cache)

随着CPU主频的不断提高,CPURAM的存取速度加快了,而RAM的响应速度相对较慢,造成了CPU等待,降低了处理速度,浪费了CPU的能力。为协调二者之问的速度差在内存和CPU之间设置一个与CPU速度接近的、高速的、容量相对较小的存储器。把正在执行的指令地址附近的一部分指令或数据从内存调入这个存储器,供CPU在一段时间内使用。这对提高程序的运行速度有很大的作用。这个介于内存和cPu之间的高逮小容量存储器称作高速缓冲存储器(Cache),一般简称为缓存

2)外存

外存是主机的外部设备,存取速度较内存慢得多,用来存储大量的暂时不参加运算或处CPU数据和程序,一旦需要,可成批地与内存交换信息。外存是内存储器的后备和补充,不能和CPU直接交换数据

5.输出设备

输出设备是指从计算机中输出信息的设备。它的功能是将计算机处理的数据、计算结果内部信息转换成人们习惯接受的信息形式(如字符、图形、声音等).然后将其输出。最常用的出设备是显示器、打印机和音箱,还有绘图仪及各种数模转换器(D/A)等。

从信息的输入输出角度来说,磁盘驱动器磁带机可以看作输入设备,又可以看作输出备

1.4.3计算机软件系统

输入计算机的信息一般有两类,一类称为数据,另一类称为程序。激素那几是通过执行程序所规定的各种指令来处理各种数据的。

1.计算机软件基础

软件是指使计算机运行所需的(程序、数据和有关的文档的总和。计算机是按照一定的指令工作的,通常一条指令对应一种基本操作。计算机所能实现的全部指令的集合称为该计算机的指令系统。解决某一种具体问题的指令排列称为程序;数据是程序的处理对象;文档是与程序的研制、维护和使用有关的资料。

计算机软件的作片j在于对计算机硬件资源的有效控制与管理,提高计算机资源的使用效率,协调计算机各组成部分的工作,并在硬件提供的基本功能的基础上,扩大计算机的功能,提高计算机实现和运行各类应用任务的能力。计算机软件通常分为系统软件和应用软件两大类。其中,系统软件一般由软件厂商提供,应用软件是为解决某一问题而由用户或软件公司开发的。

1)系统软件

系统软件是管理、监控和维护计算机资源(包括硬件和软件)、开发应用软件的软件。系统软件居于计算机系统中最靠近硬件的一层,主要包括操作系统、语言处理程序、数据库管理系统和支撑服务软件等。

(1)操作系统:

操作系统(OSOperatingSystem)是一组对计算机资源进行控制与管理的系统化程序集合,它是用户和计算机硬件系统之间的接口,为用户和应用软件提供了访问和控制计算机硬件的桥梁。

操作系统是直接运行在裸机上的最基本的系统软件,任何其他软件必须在操作系统的支持下才能运行。操作系统的主要作用体现在两个方面--管理计算机和使用计算机,所以操作系统一方面管理、控制和分配计算机的软硬件资源,另一方面组织计算机的工作流程。操作系统要通过内部极其复杂的综合处理,为用户提供友好、便捷的操作界面,以便用户无须了解计算机硬件或系统软件的有关细节就能方便地使用计算机。

(2)语言处理程序:

用各种程序设计语言(如汇编语言、FortranDelphic++VBJAVA)编写的源程序,计算机是不能直接执行的,必须经过翻译(对汇编语言源程序是汇编,对高级语言源程序则是编译或解释)才能执行,这些翻译程序就是语言处理程序,包括汇编程序、编译程序和解释程序等,它们的基本功能是把用面向用户的高级语言或汇编语言编写的源程序翻译成机器可执行的二进制语言程序

(3)系统支撑和服务程序

这些程序又称为工具软件,如系统诊断程序、调试程序、排错程序、编辑程序、查杀病毒程序等等,都是为维护计算机系统的正常运行或支持系统开发所配置的软件系统。

(4)数据库管理系统

数据库管理系统主要用来建立存储各种数据资料的数据库,并进行操作和维护常用的数据库管理系统有微机上的FoxBASE+FoxProAccess等和大型数据库管理系统OracleDB2SybaseSQLServer等,它们都是关系型数据库管理系统

2)应用软件

为解决计算机各类应用问题而编写的软件称为应用软件。应用软件具有很强的实用性。随着计算机应用领域的不断拓展和计算机应用的广泛普及,各种各样的应用软件与口俱增。如办公类软件Microsoft OfficeWPS Office、谷歌在线办公系统,图形处理软件Photoshop.Illustrator,三维动画软件3DMAX.Mava等,即时通信软件QQ.MSN.UCSkype等。只为完成某一特定专业的任务,针对某行业、某用户的特定需求而专门开发的软件,如某个公司的管理系统等,都是应用软件。

       3软、硬件的联系

    计算机是由硬件与软件结合而成的一个十分复杂的整体。可以理解为:软件在硬件的基础上工作,是对计算机功能的扩充。

    1.计算机硬件是软件工作的基础。

    2.系统软件为计算机系统有效地运行提供良好的工作环境。

    3.应用软件使计算机信息处理能力得以充分发挥。

2.程序设计语言

程序是对解决某个计算问题的方法步骤(算法)的一种描述,而从计算机来说,计算机程序是用某种计算机能理解并执行的计算机语言作为描述语言,对解决问题的方法步骤的描述。计算机执行按程序描述的方法步骤能完成指定的功能。

一个计算机程序主要描述两部分内容:描述问题的每个对象和对象之间的关系以及描述对这些对象进行处理的处理规则。其中,对象及对象之间的关系是数据结构的内容,而处理规则是求解的算法。针对问题所涉及的对象和需要完成的处理设计合理的数据结构可以有效地简化算法。数据结构和算法是程序最主要的两个方面,通常可以认为“程序=算法+数据结构”。

1)程序设计基础

(1)算法:

算法可以看作由有限个步骤组成的用来解决问题的具体过程,实质上反映的是解决问题的思路。例如:求1+2+3+-+100-?的算法是:

步骤l:k-ls=0

步骤2:如果k>100,则算法结束.s即为所求的和,输出s,否则转向步骤3

步骤3:s-s+kk=k+l

步骤4:转向步骤2

对于这个问题,还有别的算法,就像解决同一个数学问题有多种方法一样。另外,现代计算机已远远地突破了数值计算的范围,算法包括大量的非数值计算,如检索信息、表格处理、判断和决策、逻辑演绎等。

计算机的算法有以下几个性质

①有穷性。算法必须在执行有限个步骤后结束。也就是说,解题过程必须是可以终止的。

②确定性。算法的每一个步骤都必须明确地定义,不应该在理解时产生二义性。

③可行性。每个算法都可以有效地执行,并能得到确定的结果。

(2)数据结构:

数据结构是从问题中抽象出的数定义的关.;,它代表信息的一种组织方式,用来反映一个数据的内部结构,即一个数据由哪些数据项构成,以什么方式构成,呈什么结构数据结构有逻辑上的数据结构和物理上的数据结构之分。逻辑上的数据结构反映各数据项之问的逻辑关系,而物理上的数据结构反映成分数据在计算机内部的存储安排。求解简单的数值问题时,涉及的数据量少,数据处理逻辑简单,可以很少考虑数据结构的问题。但当涉及图、表的复杂信息结构,或者涉及大量数据的处理时,就必须考虑数据结构问题。例如,大型超市的商品管理包括的商品信息非常多,如果不采取一定的数据结构(如商品的分类、价格和厂家等信息编排统一有序的检索号等),则系统的实现是很困难的。所以,数据结构是信息的一种组织方式,其目的是提高算法的效率。它通常与一组算法的集合相对应,通过这组算对法集合可以对数据结构中的数据进行某种操作。典型的数据结构包括线性表、堆栈和队列等。

2)程序设计语言

算法和数据结构在很大程度上代表了程序设计的思路和组织模式,把解题思想转换成计算机能够接受的程序,需要借助程序设计语言来进行。程序设计语言是用户编写应用程序使用的语言,是人与计算机之间交换信息的工具。程序设计语言可以看作给计算机下达命令的工具,是数学算法的语言描述,它包含丁一组用来定义计算机程序的语法规则,可以让程序员准确定义计算机所需要使用的数据,并精确地定义在不同情况下所应当采取的操作。

程序设计语言经历了机器语言、汇编语言和高级语言三个阶段

(1)机器语言

l952年以前,人们只能直接利用硬件提供的机器指令编写程序,用这种机器指令写出来的程序就是由0l组成的指令序列,计算机能够直接执行。但是,机器语言对程序员的要求很高,要求程序员对计算机的硬件和指令系统都有着深入的理解,这样的程序员才能用机器指令来写程序。

机器语言是计算机系统唯一能识别的、不需要翻译直接供机器使用的程序设计语言用机器语言编写程序难度大、直观性差、容易出错,修改、调试也不方便。由于不同计算机的指令系统不同,针对某一种型号的计算机所编写的程序就不能在另一计算机上运行,所以机器语言的通用性和移植性较差

但是,由于计算机的机器指令系统与计算机的硬件密切相关,所以用机器语言编写的程序具有充分发挥硬件J能的特点,程序也容易编写得紧凑,程序运行速度快

(2)汇编语言

为了克服机器语言编写程序的困难和缺点,人们发明了汇编语言。汇编语言是机器语言的“符号化”。汇编语言和机器语言基本上是一一对应的,但在表示方法上作了改进,用一种助记符来代替操作码,用符号来表示操作数地址(地址码)。例如,用“ADD”表示加法,用“M0V”表示传送等。用助记符和符号地址来表示指令,容易辨认,给程序的编写带来了很大的方便。

汇编语言比机器语言直观,容易记忆和理解,用汇编语言编写的程序比机器语言程序易读、易检查、易修改。与机器语言类似,汇编语言与特定的计算机结构及其指令系统密切相关,其助记符操作码与其机器语言操作码是一一对应的。不同CPU的计算机针对同一问题所编写的汇编语言程序是互不通用的。

用汇编语言编写的程序质量高,执行速度快,占用内存空间少,因此,常用于编写系统软件、实时控制程序、经常使用的标准子程序和用于直接控制计算机的外部设备或端口数据输入输出程序等。

虽然汇编语言比机器语言有了很大的改进,但是仍属于面向机器的语言,它依赖于具体的机器,很难在系统间移植,所以,这样的程序的编写仍然比较困难,程序的可读性也比较差。

机器语言和汇编语言都称为低级语言

(3)高级语言

为了更好、更方便地进行程序设计工作,必须屏蔽机器的细节,摆脱机器指令的束缚,使用接近人类思维逻辑习惯,容易读、写和理解的程序设计语言。从20世纪50年代中期开始,经过许多人的不断努力,已有几百种程序设计语言问世,如FortranPascalCBasic等,而且还在不断地设计出新的高级语言。

用高级语言编写的程序是由一系列的语句(或函数)组成的。每一条语句常常可以对应几条、几十条,甚至上百条机器指令,所以用高级语言编写计算机程序大大地提高了编程效率,而且由于高级语言的书写方式更接近人们的思维习惯,这样的程序更便于阅读和理解,出错时也容易检查和修改,给程序的调试带来很大的方便,也使得非计算机专业人员能够使用计算机语言编写各种各样的应用程序,大大地促进了计算机的广泛应用和普及。所以有人说,高级语言的发明是计算机发展史上最惊人的成就。

高级语言有两类,分别是解释型和编译型。

解释程序

解释程序接受用某种程序设计语言(如Basic语言)编写的源程序,然后对源程序的每条语句逐句进行解释并执行,最后得出结果。也就是说,解释程序对源程序是一边翻译,一边执行,是直接执行源程序或源程序的内部形式的,并不产生目标程序

编译程序

编译程序是翻译程序,它将用高级语言所编写的源程序翻译成与之等价的用机器语言表示的目标程序,其翻译过程称为编译。编译程序和解释程序的区别在于,前者首先将源程序翻译成目标代码,计算机再执行由此生成的目标程序,而后者则是检查高级语言书写的源程序,然后直接执行源程序所指定的动作。在多数情况下,建立在编译基础上的系统在执行速度上都优于建立在解释基础上的系统。但是,编译程序比较复杂,这使得开发和维护费用较高;相反,解释程序比较简单,可移植性也好,缺点是执行速度慢

为提高编程效率,现在软件开发大都借助王Visual Basic C++JBuilderDelphiPower BuilderVisual Studio等可视化编辑工具,通过调用各种控件(如命令按钮、文本框),直接在窗口中中进行用户界面布局设计。该项技术其有编程快捷简单、自动生成界面程序代码、编码效率高等优点,是目前主要的软件开发方式。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多