1、第1章 计算机科学技术的基础知快本章学习目标本章主要讲解计算机的发展简史、特点、用途、系统组成、基本结构和工作原理、计算机中数据的 表示方法数制与码制、程序设计基础知识等内 容。通过本章的学习,主要掌握以下内容:计算机的基本概念、特点、用途及发展 数制及数制间的相互转换方法 计算机中数的表示方法、ASCII码和汉字编码 计算机基本结构和工作原理 程序设计语言、程序设计方法 算法与数据结构第1幸计算机科学技术的基础知诙 1.1计算机概述 L2计算机科学与技术专业的知识结构 1.3计算机的运算基础 1.4逻辑代教与建薜也路基础 1.5计算机的基本结构和工作原理.1.6程序设计基石出1.1 计算机概
2、述 LL1计算机的基本概念 LL2计算机系统的组成 LL3计算机的发展 LL4计算机的分类 LL5 计算机的特点 LL6计算机的用途:1.1.1 计算机的基本概念“计算机”顾名思义是一种计算的机器,它是由一 系列电子器件组成一英语名称为Computer。计算机可以对数字、文字、颜色、声音、图形、图 像等各种形式的数据进行加工处理。计算机具有各种计算的能力。当用计算机进行数据 处理时,首先把要解决的实际问题,用计算机语言编写 成计算机程序,然后将待处理的数据和程序输入到计算 机中,计算机按程序的要求,一步一步地进行各种运算,直到存入的整个程序执行完毕为止。计算机具有各种计算的能力。在数据处理过程
3、中,计算机不仅能进行加、减、乘、除等算术运算,而且还 能进行逻辑运算并对运算结果进行判断,从而决定以后 执行什么操作。计算机具有信息处理能力。在当今的信息社会 里,各行各业,随时随处产生大量的信息,人们为 了高效地获取、传送、检索信息及从信息中产生各 种报表数据,必须将信息在计算机的控制下进行有 效的组织和管理。综上所述,可以给计算机下一个定义:计算机是一种能按照事先存储的程 序,自动、高速地进行大量数值计算和 各种信息处理的现代化智能电子设备。1.1.2 计算机系统的组成计算机系统由计算机硬件和计算机软件两大部分 组成。硬件(Computer hardware)主要由CPU、存储器、输入输出
4、控 制系统和各种输入输出设备等功能部件 组成。软件(Computer software)它包括计算机运行所需的各种程序、数据及相关文档资料。裸机脱离软件的计算机硬件称“裸 机”。硬件是软件赖以运行的物质 基础,软件是人与硬件之间的界 面O计算机 软件操作员(人)应用软件支撑软件系统软件编译程序.操作系统计算机硬件7计算机系统的层次结构1.1.3 计算机的发展自1946年美国宾西法尼亚大学研制出世 界上第一台电子数字计算机ENI AC(电子数 字积分计算机的英文缩写)至今,短短五十 多年的时间内,计算机系统和计算机应用得 到了飞速发展。元件制作工艺水平的不断提 高是计算机发展的物质基础,因此以计
5、算机 元器件的变革作为标志,计算机的发展已经 历了四代,并正在研制第五代。1.第一代计算机一电子管计算机(19461957年)其主要特征是采用电子管作为主要元器件。ENIA。2.第二代计算机一晶体管计算机(19581964年)其主要特征是由电子管改为晶体管。3.第三代计算机一集成电路计算机(19651971年)其主要特征是用半导体中小规模集成电路代替分立 元件的晶体管。4.第四代计算机一大规模与超大规模集成电路计算机 1972年至今)其主要特征是以大规模和超大规模集成电路为计算 机的主要功能部件。5.新一代计算机智能计算机新一代计算机正在研制之中,主要特征是人工智能,它将具有自然语言理解能力、
6、模式识别能力和推理判断 能力等,突破冯诺依曼体系结构的限制,提出非冯.诺依曼的体系结构,如神经网络计算机。6.微型计算机的发展概况微型计算机(简称微机)诞生于1971年,属于第 四代计算机,微型计算机的诞生和迅速普及是计算机 发展史中最重大的事件。微型计算机具有体积小、重 量轻、功耗小、可靠性高、使用环境要求不严格、价 格低廉、易于成批生产等特点。世界上第一台微机是由美国Intel公司年轻的工程 师马西安.霍夫 M.E.Hoff 于1971年研制成功的。他大胆地提出了一个设想,把计算机的全部电路 做在四个芯片上,即一片4位微处理器Intel4004、-片320位的随机存取存储器、一片256字节
7、的只读存储 器和一片10位的寄存器,它们通过总线连接起来就组 成了世界第一台4位微型计算机一MCS-4 o微型计算机的核心部件是微处理器(MPU,根据 微处理器集成规模和功能,形成了微型计算机的不同 发展阶段。1.第一代微型计算机1972年I nte I公司研制成功8位微处理器I nte 18008,它主要 采用工艺简单、速度较低的P沟道M0S电路。由它装备起来的计算 机MCS-8称为第一代微型计算机。2.第二代微型计算机第二代微处理器是在1973年研制成功的,主要采用速度较快 的N沟道M0S技术的8位微处理器。具有代表性的产品有Intel公司 的 lntel8085、Motor。I a 公司
8、的 M6800、Zi log 公司的 Z80 等。由它 装备起来的计算机称为第二代微型计算机。3.第三代微型计算机第三代微处理器是在1978年研制成功的,主要采用H-M0S新 工艺的16位微处理器。其典型产品是Intel公司的Intel8086。由 第三代微处理器装备起来的计算机称为第三代微型计算机。4.第四代微型计算机从1985年起采用超大规模集成电路的32位微处理器,标志着 第四代微处理器的诞生。典型产品有I nte I公司的I nte 1803860 由第四代微处理器装备起来的计算机称为第四代微型计算机上71.1.4 计算机的分类计算机科学技术的发展日新月异,它已成为一个庞大的家族。计算
9、机的种类很多,从不同角度对计算机有不同的分类方法。1.按计算机处理数据的方式分类可以分为数字计算机、模拟计算机和数字模拟混合计算机三类。2.按计算机的用途分类可分为通用计算机和专用计算机两类。3.按计算机的规模和处理能力分类规模和处理能力主要是指计算机的体积、字长、运算速度、存储容量、外设的配置、输入输出能力等主要技术指标,按其分类 大体可分为巨型计算机、大/中型计算机、小型计算机、微型计算 机、工作站、服务器以及网络计算机等种类。总之,目前微型计算机与工作站、小型计算机乃至 中大型计算机之间的界限已经越来越模糊。无论按哪一 种方法分类,各类计算机之间的主要区别是运算速度、存储容量及机器体积等
10、。N1.1.5 计算机的特点计算机作为一种通用的信息处理工具,它具有极高的处理速度,很 强的存储能力,精确的计算能力和逻辑判断能力。虽然各类计算机在性 能上、用途上、规模结构上有所不同,但它们都具备以下一些特点。1.运算速度快由于计算机是采用高速电子器件组成,因此能以极高的速度工作。目前的巨型机运算速度已达到每秒几百亿次运算,微机也可达到每秒亿 次以上。2.计算精度高由于计算机采用二进制表示数据,因此它的精度主要取决于表示数 据的位数,即机器字长。字长越长,其精度越高。3.具有记忆能力存储器是计算机的记忆部件,计算机把大量的数据和程序存入存储 器,并把处理或计算的结果保存在存储器中。计算机存储
11、器有内存和外 存之分,目前,微型计算机的内存容量一般可以达到512MB且可以进一步 扩展,外存(如硬盘)容量可以达到十GB甚至上百GB。4.具有逻辑判断能力计算机不仅具有运算能力,还可以进行各种逻辑判断,并根据判断 的结果自动决定下一步应该执行的指令。5.具有自动控制能力计算机内可以存储程序,计算机可以在人们事先编制好的程序的控 制下自动地完成各种操作,无需人工干预。,i1.1.6 计算机的用途计算机在科学技术、国民经济、社会生活等各个方面都得到了广泛的 应用。按照应用的领域计算机的用途归纳起来可分为以下几个方面。1.科学计算科学计算又称为数值计算,是指使用计算机来完成科学研究和工程技 术中提
12、出的数学问题计算。如人造卫星轨迹的计算。2.数据处理数据处理是指用计算机对数据进行输入、分类、加工、统计、排序、传输、检索、存储、制表等操作,形成有用的信息。据统计,全世界计算 机用于数据处理的工作量占全部计算机应用的80%以上。3.过程控制过程控制又称为实时控制、自动控制,所谓过程控制是指用计算机及 时采集数据,将数据检测、处理后,按最佳值迅速对控制对象进行自动控 制或自动调节。目前广泛应用于钢铁工业、石油工业、医药工业等。4.计算机辅助系统计算机辅助系统主要包括计算机辅助设计、计算机辅助制造、计算机 辅助教育等。5.人工智能人工智能是用计算机模拟或部分模拟人类的智能,一般是指模拟人脑 进行
13、演绎推理和采取决策的思维过程。6.电子商务电子商务是指通过计算机和网络进行商务活动。1.2计算机科学与技术 专业的知识结构计算机科学技术学科经历半个多世纪的迅猛发展,已成为比 较完备的学科体系,衍生了许多相对独立的方向和分支。从学科 体系的角度,可将计算机科学与技术学科的内容划分为三个层面:应用层、专业基础层和专业基础的理论基础层。1 应用层应用层是与计算机应用领域或用户最接近的层面,它包括人 工智能应用与系统,信息、管理与决策系统,计算可视化,科学 计算等计算机应用的各个方向。2.专业基础层专业基础层为应用层提供理论和方法指导及环境。它包括软 件开发方法学、计算机网络与通信技术、程序设计科学
14、、计算机 体系结构、电子计算机系统基础。b 3.专业基础的理论基础层专业基础的理论基础层是为计算机专业基础提供理论指导或 依据的更低层的理论层面,包含了计算机科学的最核心和最基础 的理论。它主要包括计算理论和高等逻辑等内容。1.3计算机的运算基础基础 L3.1 数制 1.3.2 码制 1.3.3定点数与浮点数 L3.4信息编码1.3.1数制关于数,大家并不陌生,数是各种运算的基础。计 算机处理的对象就是数据,在计算机中数值,字符、声 音、图形、图像等都是数据,那么数据在计算机中是如 何表示的?有哪些要求?1.数制的概念按进位的原则进行计数叫进位计数制,简称数制。人们熟悉十进制数,但除以之外,还
15、有十六进制、十二 进制等等。基数:所谓某数制的基数是指该数制中允许选用的基 本数码的个数。如十进制的基数是10。位权:一个数码处在数的不同位置时,它所代表的数 值是不同的。每个数码所表示的数值等于该数 码乘以一个与数码所在位置有关的常数,这个 常数叫位权。位权的大小是以基数为底,数码所在位置的序号为 指数的整数次事。例如,十进制数个位数位置上的位权为10。,千位数 位置上的位权为103,小数后第3位的位权为10-3。例如,十进制数1548.3687可以表示成:1548.3687=1 X 103+5 X 102+4 X 101+8 X 100+3 X 10-1+6 X 10-2+8 X 10-3
16、+7 X 10-4计算机的运算基础是二进制,计算机中采用二进制,而不采用十进制,这是因为:(1)二进制的数码0和1,用电子器件极易实现。(2 二进制数的运算规则简单。(3 二进制数只有两个状态,数字的传输和处理不容易 出错,计算机工作的可靠性高。4 二进制码的两个符号“0”和“1”正好与逻辑命题 的两个值“真”和“假”相对应,为计算机实现逻辑运 算和2 堂用的数能II.在计算机科学技术中常用的数制有:十进制、二进制、八进制和十六进制。在计算机内部一切数据的存储、处理和传送均采 用二进制形式。二进制不便于书写,通常用八进制或十六进制来 书写,因此计算机学科引入了八进制和十六进制。为了适应人的习惯
17、,数值型数据在输入输出设备 上则采用人们十分熟悉的十进制。无论是哪一种数制,采用位权表示法的数制有四 个重要的特征:逢R进一(R为基数)。如十进制数逢十进一。数字的总个数等于基数。如十进制数09。最大的数字比基数小1。如十进制中最大数字为9。每个数字都要乘以基数的事次,该累次由每个数 字所在的位置决定。一般地,对于R进制而言,其基数为R,使用R个数 字表示数值,其中最大的数字为RT,任何一个R进制 数N:N a a.-3-i a八 a an n-1.1 0-1.-m均可表示为如下按权展开式形式:N-an-i.ai a0-a-1.a-m=an X Rn+an-1 X Rn-1+ai X R1+a
18、0 X R0+a-1 X R7+.+a-m X R-m(1)十进制(简记符为D)十进制用0,1,2,3,4,5,6,7,8,9十个数 码表示数值,采用“逢十进一”计数原则。基数为10,位权为10 L例如,十进制数5246.376可表示成:5246.376=5 X 103+2 X 102+4 X 101+6 X 10+3X107+7X102+6X10-3(2)二进制(简记符为B)二进制用数字0和1表示数值,采用“逢二进一”计数原则。基数为2,位权为2 L例如,二进制数1011.101可表示成:1011.101=1 X23+0X22+1 X21+1 X2+1 X2T+0X2-2+1 X23二进制计
19、数方式最本质的东西是每位数计满2时,向高一位进一,即“逢二进一”。对于二进制数,小数点向右移一位,数值就扩大2 倍,例如:11011.101=10X(1101.1101);反之,小 数点向左移一位,数值就缩小2倍。例如:11011.101=1/10X(110111.01)o另外,若个位数是1,则此二进制数就是奇数,如 11,11101,110001等都是奇数,若个位数是0,则此 数就是偶数,如110,111010,11000等都是偶数。二进制数的加法和乘法的运算规则如下:加法运算规则:0+0=0 0+1=1 1+0=11+1=10乘法运算规则 0X0=0 0X1=0 1X0=0 1X1=1例
20、1.1(1011)2+(11011)2=?10 11+110 11 10 0 1 0即:1011+11011=100110相当于十进制数11+27=38。例 1.2(1001)2 X(110)二?10 0 1X 11010 0 1+10 0 1110 110即:(1001)2 X(110)2 二(110110)2 相当于十进制数9X6=54。(3)八进制(简记符为Q)八进制用0,1,2,3,4,5,6,7八个数码表示 数值,采用“逢八进一”计数原则。基数为8,位权为8 i O例如:(473.25)&二 4 X 82+7 X 81+3 X80+2 X 8-1+5 X 8-2(4)十六进制(简记符
21、为H)十六进制用0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F十六个数码表示数值,采用“逢十六 进一”计数原则。基数为16,位权为16 L例如:(4AF8.94B)16=4X 163+AX 162+FX 161+8X16+9 X 16-1+4X16-2+BX16T综上所述可见,各种进位计数制的基本道理是相 同的,只是在日常生活中不经常用到二进制、八进制 和十六进制,对它们不十分熟悉而已,但它们之间存 有内在的联系,它们之间可以相互转换。3.各种数制间的相互转换将数由一种数制转换成另一种数制称为数制间的 转换。(1)0非十进制转换成十进制非十进制数转换成十进制数采用“位权法”,即
22、 把非十进制数写成各自的按权展开式,然后按十进制 运算原则求和,其和值就是转换后对应的十进制数。例1.3 将二进制数1011101.1001转换成十进制数。(1011101.1001)2=1 X26+0X25+1 X24+1 X23+1 X22+0X21+1 X20+1 X2T+0X2-2+0X2-3+1 义2-4二 64+16+8+4+1+0.5+0.0625二(93.5625)10例L 4 将八进制数763.24转换成十进制数。(763.24)2=7X82+6X81+4X82=448+48+3二(499.3125)+3X8+2X8-1+0.25+0.062510例L5 将十六进制数B2F转
23、换成十进制数。(B2F)16=BX162+2X161+FX160二 11 X162+2X161+15X16二 2816+32+15=(2863)(2 十进制数转换成非十进制数将十进制数转换成二进制、八进制或十六进制等 非十进制数的方法是相似的,十进制数转换非十进制 数时,整数部分和小数部分分别进行转换,将两个转 换结果结合起来就可以得到对应的非十进制数。十进制整数转换成非十进制整数将十进制整数转换为非十进制整数采用“除基取 余法”。即:将十进制整数及此期间产生的商逐次除 以需转换为数制的基数,直到商为零为止,并记下每 一次相除所得到的余数,按从后往前的次序将各余数 记作K n K n HK N
24、_2 K0,从而构成转换后对应的 非十进制整数。例1.6 将十进制整数125转换成对应的二进制 整数。12562157 3 7 0222222余数1011111则得:(125)10 二(1111101)例1.7 将十进制整数125转换成对应的十六进制整数。16 12516|70余数13 t(D)7则得:(125)10 二(7D)例1.8 将十进制整数125转换成对应的八进制整 数。余数5八71则得:(125)10 二(175)十进制小数转换成非十进制小数将十进制小数转换为非十进制小数采用“乘基取 整法”。即:将十进制小数及此期间产生的积小数部 分逐次乘以需转换为数制的基数,直到积的小数部分 为
25、零为止或达到一定精度为止,并记下每一次相乘所 得到的整数部分,按照从前往后的次序,将各整数部 分记作k 1 k_2 k.m,从而构成转换后对应的非十进制 小数。例1.9 将十进制小数0.625转换成对应的十六 进制小数。0.625 整数部分X 163750+62510.000 10(A)则得:(0.625)一 二(0.A)z例1.10 将十进制小数o.625转换成对应的二进制小数。,算机科学技术目恪0.625 整数部分X 21.25010.25X 20.5 0X 2f0 1,则得:(0.625)10 二(0.101)2例1.11 将十进制小数0.625转换成对应的八进制小数0.625 整数部分
26、X 85.000 5”则得:(0.625)io=(0.5)例L 12 将十进制小数0.467转换成对应的二进制数0.467X 2 0.934X 2 1.868 0.868X 2 1.736 0.736义 21.472整数部分0111则得:(0.467 10二(0.0111.)2如果一个十进制数既有整数部分,又有小数部分,则应将整数部分和小数部分分别进行转换,然后把两者 相加便得到结果。例L 13 将十进制数125.625转换成对应的二进制数因为(125)10 二(1111101)2(0.625)10 二(0.101)2所以(125.625)10 二(1111101,101)2(3)二进制与八进
27、制、十六进制之间的转换由于一位八进制数对应3位二进制数,一位十六 进制数对应4位二进制数,于是二进制数与八进制数、十六进制数之间的转换比较简单。二进制与八进制之间的转换二进制的基数是2,八进制的基数是8,由于8=23,因此,一位八进制数正好相当于3位二进制数;反之,3位二进制数可表示一位八进制数。若把二进制数转换为八进制数,只须以小数点为 界,将整数部分从右向左每3位一组,最高一组不足3 位时,在最左端添0补足3位,小数部分从左向右,每 3位一组,最低一组不足3位时,在最右端添0补足3位,然后,将各组的3位二进制数转换为对应的一位八进 制数即可。反之,若将八进制数转换成二进制数,只 要把每位八
28、进制数用对应的3位二进制数表示即可。例L 14 将二进制数1101100111.10011转换成对的 八进制数。001101100111.1001101 5 4 7 4 6则得:(1101100111.10011)2 二(1547.46)8例1.15 将八进制数576.32转换成对应的二进制数。(576.32)只=101 111 110.011 010则得:(576.32)8=(101111110.01101)2二进制与十六进制之间的转换十六进制的基数是16,由于16二23因此,一位十 六进制数可用4位二进制数表示。若把二进制数转换为十六进制数,只须以小数点 为界,将整数部分从右向左每4位一组
29、,最高一组不足 4位时,在最左端添0补足,小数部分从左向右按4位为 一组,最低一组不足4位时,在最右端添0补足,然后,将各组的4位二进制数转换为对应的一位十六进制数即 可。反之,若将十六进制数转换成二进制数,只要把 每位十六进制数用对应的4位二进制数表示即可。例1.16 将二进制数1101100111.10111转换成对应的 十六进制数。00 1 1 0 1 1 00 1 1 1.1011 10003 6 7 B 8则得:(1101100111.10111)2=(367.B8)16例L1刀将十六进制数5FD4.A3转换成对应的二进 制数。(5FD4.A3)只=0101 1111 1101 01
30、00.1010 0011则得:(5FD4.A3)16=(101111111010100.10100011)21.3.2 码制计算机处理的数据分为数值型和非数值型两类。数值型数据是指数学中的代数值,具有量的含 义,且有正负之分、整数和小数之分。非数值型数据是指输入到计算机中的所有信息,没有量的含 义,如英文字母、数字符号09、汉字、声音、图形、图像等。在计算机中这些数据是如何表示的呢?由于计 算机采用二进制,也就是说计算机只识别0和1形式 的代码,所以输入到计算机中任何数值型和非数值 型数据都必须转换为二进制代码。1.机器数与真值在计算机中,数值型数据是用二进制数来表示的,数值型数据有正、负之分
31、,那么在计算机内部是如何 表示正、负号的呢?在计算机内部数值型数据的最高位用来表示数值 的正负,这一位通常称为符号位。规定:用“0”表示号,用“1”表示“-”号。在计算机内部数字和正负号都用二进制代码表示,两者结合在一起构成数值型数据的机内表示。我们把 这种连同数字与符号组合在一起的二进制数称为机器 数,由机器数所表示的实际值称为真值。如:(00110101)2=(+53)10即在计算机内部00110101这一串二进制数代表十 进制数+53。(10110101)2=(-53)10在计算机内部10110101这一串二进制数代表十进 制数-53。2.原码、反码和补码计算机中机器数可以用不同的码制来
32、表示,常用 的码制有原码表示法、反码表示法和补码表示法。设机器字长为n位,最高位为符号位,其余nT位为数 值位。原码表示法原码:最高位为真值的符号(正为0,负为1 其 余nT位为数值位且与真值的数值位相同。数X的原码 记为凶原。例如:假设机器字长8位,二进制数+1011011和-1011011的原码分别表示为01011011和11011011。注意:在原码表示中,零有两种表示形式,即:+0 原=00000000,-0 原=10000000原码所能表示的数的范围与机落字长有关,设机 器字长为八位时,最高位为符号位,整数原码表示的 范围为-127+127。即最大数是01111111,最小数 是11
33、111111。同理,机器字长为十六位时,整数原码 的范围为-32767+32767o例L19 假设字长为8,求十进制数+56与-56的原码。因为(56)10 二(111000)2所以+56 南=00111000 -56 库=10111000用原码表示一个数简单、直观,与真值之间转换方便。这种表示法,对乘法和除法的符号判别是很方便的,在作 乘法或除法时,把数的符号位按位相加后,就得到结果的 符号位。但这种表示法对加、减法来说运算比较复杂,不能用 它直接对两个同号数相减或两个异号数相加。例如:十进制数“39”与“-56”的两个原码直接相加。因为+39 南=00100111 -56 库=101110
34、000 0 1 0 0 1 1 1+10 1110 0 01 1 0 1 1111其结果符号位为1表示是负数,真值为“1011111”,即等于十进制数“-95”,这显然是错误的。又如,十进制数“+39”与“+56”的两个原码直接相 减:00100111-0011100011101111其机器数为“11101111”,真值为十进制数-111,这显然也是不对的。因此为了计算机中方便进行加、减法而引入了反码和补码表示法。反码表示法反码:正数的反码和原码相同,负数的反码是对 该数的原码除符号位外各位取反,即“0”变“1”,“1”变0。数X的反码记为凶反。例如:设机器字长8位,二进制数+1011011和
35、-1011011的反码分别表示为01011011和10100100。零的反码表示有两种,即:+0 反=00000000-0 反=11111111可以验证,任何一个数的反码的反码即是原码本身。反码通常作为求补过程的中间形式。补码表示法补码:正数的补码和原码相同,负数的补码是对 该数的原码除符号位外各位取反,最末位加1。即:反 码加1。数X的补码记为凶补。例如:设机器字长8位,二进制数+1011011和-1011011的补码分别表示为01011011和10100101。零的补码表示是唯一的。即:+0 补=一0 补=00000000 o补码所能表示的数的范围也与二进制数的位数(即机器字长)有关,假设
36、用八位二进制数表示时,最高位为符号位,整数补码表示的范围为-128+127。用十六位二进制数表示整数补码时的范围为-32768+32767o例L20 设字长为8,求十进制数+56与-56的补码。+56 补=+56 原二 00111000-56 原二 10111000 -56 补=11001000可以验证,任同一个数的补码的补码即是原码本身。引入补码后,加减法都可以用加法来实现,即减 法变为加法来运算,并且两数的补码之“和”等于两 数“和”的补码。即:X+Y 补=X 补+Y 补 X-Y 补二 X+(-Y)补=X 补+-丫 补 例L 21 计算十进制数“39”与“56”之差(39)10-(56)1
37、0=39 补+-56 补 39 补=00100111 -56 补=110010000 0 1 0 0 1 1 1+1 1 0 0 1 0 0 01110 1 1 1 1其结果11101111为补码,对它再进行一次求补运算就得到结 果的原码表示形式,即:11101111 补=10010001贝IJ 10010001=-0010001=(-17)10,由于39-56=-17,所以 结果正确On由此可见,计算机中加减法运算都可以统一化成补码的加法运算,其符号位也参与运算。目前*机 中的加减法运算基本上都采用补码进行运算。1.3.3 定点数与浮点数在计算机中,参与运算的数据,既有整数,也 有小数,那么
38、在计算机内部小数点是如何表示的呢?在计算机系统中,当处理的数值含有小数部分 时,计算机并不是采用某个二进制位来表示小数点,而是用隐含规定小数点的位置来表示。按小数点的位置是否固定,一般分为定点数和 浮点数,相应地数据具有定点表示和浮点表示两种 形式。1.定点数场新器中,小数点位置固定的数称为定点数,定 点数根据小数点隐含固定位置不同,又分为定点小数 和定点整数。(1)定点小数定点小数是指小数点隐含固定在最高数值位的左 边,符号位右边,参与运算的数是纯小数。记作:xo.X-X_2X m,定点小数在计算 机中表示的格式如下:X。Xx2 数值位 符号位J隐含小数点位置在定点小数表示中,机器中运算的数
39、都是绝对值小 于1的纯小数。但实际上,参加运算的数不可能都是这 样的纯小数,对于绝对值大于1的数,若直接使用定点 小数格式将产生“溢出”,因此应根据实际需要取一个“比例因子”,将原数据按比例缩小,以定点小数格式 表示,得到结果后再按该比例扩大,得到实际的结果。例如,有一数为110.1001将其乘以2-3,得:110.1001X2-3=0.1101001这样,该数就通过比例因子2-3缩小为小于1的数。设机器字长为n位,其中一位是符号位,其余(nT 位是有效数值位,那么这种定点小数所能表示的数值范 围为:-0.0.Jn-1位 nT位即:-1-2 一(联1)w x W 1一2 一(联1)若采用补码运
40、算,由于零的补码唯一,规定用1.000000表示-1,所以n位字长的定点小数所能 表示的数值范围为:-X W 1-2-(田)。(2 定点整数定曾基数是指小数点隐含固定在整个数值的最右 端,符号位右边所有的位数表示的是一个纯整数。记 作:X n X n 7 X n _ 2X 1 X ,定点整数在计算机 中表示的格式如下:Xn数值位符号位隐含小数点位置在定点整数表示中,机器中运算的数都是绝对值 大于1的整数,并且都是绝对值在一定范围内的整数,对于绝对值超出该范围或参与运算的数是小数,我们 就不能直接使用定点整数格式表示,需要根据实际情 况适当地选取一个“比例因子”进行调整。n位字长(其是一位是符号
41、位)的定点整数(补码)所能表示的数值范围为:-2 n-1 X,_尾数部分_7为了提高精度通常其尾数的最高位必须是非零的有效位,这称为浮点数的规格化形式。由于其阶码为8位,由阶码最大值为2 7-1=(127)10,阶 码最小值为-2 7二(-128)10,这样格式所表示数的范围为:_ 1 X2 127 (1-2-23)X2 127由此可见,浮点数的表示范围要比定点数大得多,但也不是无 限的,当计算机中参与运算的数超出了浮点数的表示范围时称为溢 出。如果一个数的阶码大于计算机所能表示的最大阶码,则称为上 溢;反之,若小于最小阶码,则称为下溢。上溢时计算机将停止运 算,转溢出中断处理程序进行溢出处理
42、;下溢时计算机将该数作为 机器零来处理,即把该浮点数的阶码和尾数全置成零,但仍能进行 A-A-运舁。采用浮点表示的数,在运算之前要进行对齐小数点的操作(称 为对阶),才能进行加减运算。在计算机中判断两数的小数点是否对齐,只要判断两数的阶码 是否相等,若相等,则说明两小数点的位置已对齐。所以实现浮点 运算操作比较麻烦,设备也比较复杂。z1.3.4 信息编码信息编码是指对输入到计算机中的各种非数值 型数据用二进制数进行编码的方式。所谓编码就是 用若干位二进制代码,选择一定的组合原则来表示 组成信息的各种符号。根据不同的用途有各种各样 的编码方案,常用的有ASCII码、BCD码、汉字编码 和数据校验
43、码。1.ASCI I码ASCII码是美国标准信息交换码,已被国际标准 化组织定为国际标准,是目前最普遍使用的字符编 码。字符是计算机中使用最多的非数值型数据,是 人与计算机进行通信、交互的重要媒介。ASCII码有7位码和8位码两种编码方案,常用的 是7位码方案。7位ASCII码是用七位二进制数进行编 码的,可共表示2 7=128个字符。ASCI I码的每个字符用7位二进制码表示,其排列 次序为b6b5b4 b3b2与与。通过查ASCI I码表可以找到数 字、运算符、标点符号以及控制字符等字符与ASCII码 之间的对应关系。例如:小写字母“g”的ASCI I码为1100111;ASCI I码01
44、10011对应的字符是数字“3”。字符09十个数字字符的ASCI I码的高3位编码(b6b5bp为011,低4位为00001001。当去掉高3位 的值时,低4位正好是09的二进制数形式。这样编码 既满足正常的排序关系,又有利于完成ASCII码与二进 制数之间的转换。字母AZ的编码值为6590(1 000001 1011010),小写英文字母az的编码值为97122(1100001-1111010),大、小写字母编码差别仅表 现在bs位的值为0或1,对应大、小写英文字母ASCII码 值十进制形式相差32,因此大、小写英文字母之间的 编码转换非常便利。为了提高信息传输的可靠性,字符ASCII码在计
45、算 机内实际是用八位二进制代码表示的,一个字符占一 个字节存储空间,一个字节中的ASCI I码表示如图1.5 所示。有效编码位b6b5b4b2bo奇偶校验位ASCII码的最高位b 作为奇偶校验位。所谓奇偶校 验,是指在代码传送过程中用来检验是否出现错误的 一种方法,一般分奇校验和偶校验两种。例如,奇(偶)校验规则为:若7位ASCII码中“1”的个数为奇(偶)数,则校验位置“0”,否则置“1”。注意,校验位仅在信息传输时有用,在对ASCI I码进行处理时 校验位被忽略。2.BCD码BCD码又称8421码,是一种二 十进制的编码,它使用4位二进制数表示一位十进制数。由于4位二进 制数可表示16种状
46、态,只取前10种状态00001001来 表示十进制数码09,从左到右每位二进制数的权分 别是8、4、2、1,因此又叫8421码。这种编码既具有 二进制形式,又具有十进制的特点,它是逢“十”进 位的。BCD码十个不同的码分别是:0000、0001、0010、0011、0100、0101、0110、0111 1000和 1001,这十 个码分别代表十进制数码0、1、2、3、4、5、6、7、8、9oBCD码很直观,可以很容易实现与十进制的转换。对于多位十进制数,可以直接使用一位十进制数用四 位二进制数来编码表示。例如:十进制数258对应的BCD码001001011000;反之,BCD码 W01 WO
47、O 0U1 00W 对应的十进制数 是9872。3.汉字编码计竟机在处理汉字信息时需要对汉字进行编码,由于汉字数量大,字形复杂,同音字多,所以汉字在 计算机中的输入、内部处理、存储和输出都使用不同 的编码。如汉字输入码、汉字机内码、汉字交换码、汉字字形码以及汉字地址码等汉字信息处理系统在处理汉字时,不同环节使用 不同的编码,并根据不同的处理层次和不同的处理要 求,要进行一系列的汉字代码转换。从汉字输入到最 终的汉字输出的转换过程如下图所示。汉字输入设备 输入管理模块汉字库输出设备(1)汉字输入码汉字输入码是为方便人工通过输入设备(如键盘)输 入汉字而设计的代码。输入码种类繁多,广泛采用的输入码
48、主要有:区位码、智能ABC码、五笔字型码、快速输入码等。(2)汉字交换码(又称为国标码)汉字交换码是用于汉字信息处理系统之间或通信系 统之间进行信息交换的汉字代码。我国的国标GB2312-80制定了汉字交换码的标准。该标准规定了信息交换用的6763个汉字和682个非汉字 图形字符编码。根据汉字使用频率的高低、构词能力强 弱、实际用途的大小划分为两级汉字,一级汉字3755个,二级汉字3008个。一级汉字按拼音顺序排列,同音汉字 按笔画顺序排列;二级汉字按部首顺序排列。国标码字符集中的任何一个汉字或图形符号都用两 个7位的二进制数表示,在计算机中用两个字节表示,每个字节的最高位为0,剩余7位为GB
49、2312-80二进制编 码。计算机科学技术日恪(3)汉字机内码汉字机内码是供计算机系统内部进行汉字存储、加 工处理、传输统一使用的代码。也称汉字内码。目前国内应用较广的一种为两字节机内码,俗称变形国标码。即:1 X X X X X X X 1 X X X X X X X这种格式的机内码是将国标码的两个字节的最高位 分别置1得到的。其最大优点是机内码表示简单,和交 换码之间有明显的对应关系。即:机内码二国标码+8080H(4)汉字字形码汉字字形码是指汉字字库中存储的汉字字形的数字 化信息码,它主要用于汉字输出(打印、显示等)时产生 的汉字字形。有两种显示字形的方法:矢量字符和点阵字符。一 个汉字
50、系统所允许使用的全部汉字的汉字字形编码称为“汉字库”,存放于系统的汉字字形库的存储器中。在通用汉字系统中,广泛以点阵的方式形成汉字,这时的汉字字形码是汉字点阵字形的代码,以点阵形式 组成的汉字字形码,由于点阵规格的不同,又分为 16X16、24X24、32X32、48X48,甚至更多点阵的 汉字库O对16X16的点阵字形,字形码为32个字节(16X16+8=32)每个汉字占32B,那么16X 16点阵汉字 字库(包括一、二级汉字6763个)共占230KB左右。(5)汉字地址码是指汉字字形码在汉字字库中存放位置的代码,即 字形信息的地址。需要向输出设备输出汉字时,必须通过地址码,才 能在汉字库中