C++程序设计:第一章 计算机基础知识1_第1页
C++程序设计:第一章 计算机基础知识1_第2页
C++程序设计:第一章 计算机基础知识1_第3页
C++程序设计:第一章 计算机基础知识1_第4页
C++程序设计:第一章 计算机基础知识1_第5页
已阅读5页,还剩262页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

程序设计与算法语言(上)东南大学(课时:40学时课内试验机时32学时)在本课程开始之前,有些不太轻松的话题要作如下说明:

当然,程序设计是一门实践性非常强的课程,为此,我们为每个同学安排了32个课时的上机实践,每次上机都是针对所学内容,以帮助理解、巩固和提高为目的。因此,上机也是上课,上机时与上课的要求一样,请同学们务必遵守上机的规则和要求。

此外,学习程序设计,要涉及很多术语、名词、规则等等,课堂上教师不可能逐一描述,只能讲授和解释其中的重点和难点。其余部分也必须通过反复阅读和作业练习才能逐步熟悉和理解。为此,我们规定:

在计算机比较普及的今天,有条件的同学对计算机的一些基本操作,甚至一些硬件以及软件外围的术语可能比较熟练、熟悉,应该说,这对学好这门课程有一定的帮助。但是,这些所谓高科技的市井知识与程序设计的能力完全是两回事。要学好这门课程,必须在课堂学习的基础上,通过反复阅读和练习才能逐步理解和掌握。累计4次未交按时交作业与累计3次缺课一样将被视为放弃考试资格第一章计算机基础知识1.1本章主要知识点计算机的基本组成与内部结构计算机的基本工作原理计算机中数据的存储和表示算法设计数据结构基本概念1.2计算机系统结构及工作原理我们现在普遍使用的通用电子数字计算机(GenericElectronicNumericalComputer,简称计算机)是一种现代计算工具。电子计算机最基本的工作特点是人将其启动后能自动进行计算直至得出最终答案。为了具有自动计算能力,需要为计算机设计一套完整的部件,使之除了具有存储数据的功能外,还应能够允许人向机器输入预先编写的指令,然后使机器自动执行这套指令对数据进行计算,最后将计算结果以人能够看到的形式输出。这是对计算机组成结构的基本要求。一、什么是电子计算机电子计算机之父-冯诺依曼冯•诺依曼思想:

1、二进制;

2、程序存储、程序控制;

3、五大模块(输入、存储、运算、控制、输出);

美籍匈牙利科学家冯·诺依曼历来被誉为“电子计算机之父”。也是本世纪最伟大的数学家、物理学家、经济学家之一。世界上第一台电子计算机1946年,世界上第一台电子计算机ENIAC在美国宾夕法尼亚大学莫尔学院诞生了!重达30吨启动电力150000瓦17000个电子管保存80个字节事实上,从上世纪40年代的第一台真正意义上的电子计算机ENIAC到现在21世纪最先进计算机的结构设计,都采用同一种计算机体系结构,这就是冯•诺依曼体系结构。冯·诺依曼计算机的特点能够把解题所需要的程序和数据输入计算机中。必须具有长时间记忆程序、数据、中间结果及最终运算结果的能力。能够完成各种算术、逻辑运算和数据传送等数据加工处理的能力。能够根据需要控制程序走向,并能根据指令控制机器的各部件协调操作。能够按照要求将计算结果输出给用户。

硬件系统的工作原理--冯·诺依曼机输入设备内存储器输出设备外存储器运算器控制器表示数据流表示控制流

计算机系统的基本逻辑结构包括硬件和软件两个子系统。计算机的基本组成与内部结构计算机的基本组成与内部结构

如果没有外围设备,CPU和内存就像一个没有躯体的大脑。计算机内的插槽和端口可以使系统增加外部设备变得十分简单,用户可以在计算机里的扩展槽里插入专用电路板(叫做卡或扩展卡),来个性化他们的计算机。微型计算机的基本结构微机结构特点开放式、模块化体系结构主板(母板)+扩展卡+设备计算机的基本组成与内部结构

当前微机主要有Intelx86系列和APPLE的Power系列,无论哪个系列,从基本配置的角度,微机由主板和各类扩展卡组成。主板上主要有CPU、存储器、系统芯片和I/O接口插槽,这些部件均采用总线相连接。计算机的基本组成与内部结构主板:I/O接口内存条扩展槽CPU插座芯片组

计算机的基本组成与内部结构控制器随机存储器(RAM)只读存储器(ROM)串行输入/输出接口USB接口显示器接口微型计算机硬件系统主机主板中央处理器运算器寄存器内部存储器外围接口电路总线扩展板卡机箱、电源外围设备地址总线控制总线数据总线显卡网卡声卡多功能卡输入设备存储设备(外部存储器)输出设备微型计算机的基本结构并行输入/输出接口计算机硬件系统的基本组成

逻辑结构——冯·诺依曼机

一个计算机硬件系统,从功能的角度而言,

一般包含五大功能部件:运算器、控制器、存储器、输入设备和输出设备。计算机的基本组成与内部结构1、中央处理器CPU

(CentreProccessingUnit)是计算机的核心部件,它完成计算机的运算和控制功能,一般由运算器、控制器和寄存器组成。

运算器又称算术逻辑部件(ALU——ArithmeticalLogicUnit),主要功能是完成对数据的算术运算和逻辑运算操作。

控制器(Controller)是计算机的控制指挥中心,计算机的神经中枢。它的基本功能是从内存储器中取出指令并对指令进行分析、判断,并根据指令发出相应的各种控制信号,使计算机的有关设备或电子器件有条不紊地协调工作,保证计算机能自动、连续地工作。1、CPUCPU中还包括若干寄存器,用来存放运算过程中的各种数据、地址或其他信息。寄存器的种类很多,主要的有:(1)通用寄存器:向ALU提供运算数据,或保留运算结果。一般CPU有多个通用寄存器。(2)累加器A:这是一个使用相对频繁的特殊的通用寄存器,有重复累加数据的功能。(3)程序计数器PC:存放将要执行的指令的地址。(4)指令寄存器IR:用于存放正在执行的指令,或存放根据PC的内容从内存储器中取出的指令。1、CPU1、CPU1971年11月,美国Intel公司制成了世界上第一片微处理器Intel

4004。随后,许多公司竞相研制微处理器,相继推出了8位、16位、32位和64位微处理器,芯片的主频和集成度不断提高,微型计算机发展非常迅速,以2~3年的速率更新换代。衡量CPU性能的主要技术

(1)CPU字长

CPU字长指CPU内部各寄存器之间一次能够传送的数据位。现在主要是32位,但是64位已经逐步普及;(2)运算速度运算速度一般用每秒钟能够执行多少条指令来表示。(3)工作频率

CPU的工作频率也称为CPU的主频,它指CPU内核电路的实际运行频率。(4)CPU的生产工艺技术

CPU的生产工艺技术通常用µm来描述。CPU的工艺和集成度所熟知的制造技术应该是从0.25微米开始,到1999年的0.18微米、2001年的0.13微米、2003年的90纳米(0.09微米),2005年65纳米(0.065微米)以及2008年45纳米(0.045微米)制造工艺。

第一代的Pentium4只有4200万个晶体管,转变到Northwood核心之后提高到5500万个,而Prescott核心,晶体管总数达到1亿2500万个。双核心处理器,晶体管规模已经突破3亿个。现在的65纳米的4核处理器在将近700平方毫米的面积上集成了20.5亿个晶体管,据称45纳米的4核处理器的晶体管数是65纳米处理器的2倍!

2、存储器

存储器是有记忆能力的部件,用来保存程序和数据。在计算机运算过程中,由存储器把预先编制和存储的程序快速提交给计算机的CPU进行处理。存储器分为内存储器和外存储器两类。程序和数据内存控制器执行指令运算器处理数据输出输入设备调入反馈结果终端输出设备内存储器执行过程:

内存储器(也称主存储器,简称内存或主存)可以和CPU直接相连,用来存放当前要执行的程序和数据,以便快速向CPU提供信息。内存储器一般采用半导体材料和集成电路制造。内存按其工作方式不同,可分为随机存取存储器(RAM——RandomAccessMemory)和只读存储器(ROM——ReadOnlyMemory)两种。ROM:在正常工作的时候只能读出其中存放的数据,而不能改变其内容。因此ROM经常被用来存放那些固定不变,无需修改的数据与程序。ROM的最大特点是掉电以后,数据不会丢失,通电后可以继续使用。举例:BIOS即基本输入/输出系统。

RAM:内存的存储单元可以顺序使用,也可以随机一个单元来使用,这些能被用户程序或指令访问的内存被称为随机存取存储器。DRAM、SRAMRAM在掉电的时候会将其存储的数据丢失。举例:互补金属氧化物半导体CMOS

内存储器BIOS(BasicInput/OutputSystem)即基本输入/输出系统。全称是ROM-BOIS,是只读存储器基本输入/输出系统的简写,它实际是一组被固化到电脑中,为电脑提供最低级最直接的硬件控制的程序,它是连通软件程序和硬件设备之间的枢纽,通俗地说,BOIS是硬件与软件程序之间的一个“转换器”或者说是接口(虽然它本身也只是一个程序),负责解决硬件的即时要求,并按软件对硬件的操作要求具体执行。当开机时,BOIS中的程序开始启动。内存储器互补金属氧化物半导体CMOS(complementarymetaloxidesemiconductor):

是主板上的一块可读写的RAM芯片,一种能量消耗低的RAM,可以在电池电量的支持下长期存储少量的数据,CMOSRAM用来存储系统的日期和时间,系统的口令,系统中安装的软盘、硬盘驱动器的个数、类型及参数,显卡的类型,系统启动时访问外存储器的顺序。CMOS芯片是易失性存储器,所以需要专门的电池供电,以支持断电之后的工作。内存储器外存储器(也称辅助存储器,简称外存),一般需要通过特殊接口与CPU连接。外存储器用来存放当前暂不参加运行而又需要长期保留的程序和数据。存放在外存的程序必须调入内存才能运行。软盘、硬盘和光盘驱动器都属于外存储器。外存储器硬盘属于外部存储器的一种。说起硬盘,你一定不会陌生,包括Windows系统在内的所有的软件都是安装在硬盘里的,平时所用的资料也都是存储在硬盘中的。硬盘的大小是衡量一台电脑性能的重要指标。1、硬盘2、软盘

3、光盘和光驱

(4)、移动存储器

闪存盘以闪速存储器为介质,采用USB接口(因此也称其为U盘),体积只有拇指般大小,重量仅15克左右,容量目前一般为2GB—4GB,最高可达32GB。闪存盘不需要驱动器,无外接电源,使用方便,即插即用,可带电插拔。它的存储单元可反复檫写100万次,数据可以保持10年以上。存储器的层次结构——塔式结构内存的存取速度直接影响计算机的运算速度。内存一般使用半导体材料制造,存取速度较快,容量较小,成本较高;而外存通常以磁性材料和其他材料制造,容量较大,速度较慢,成本较低。第一层,CPU内部的通用寄存器,用来暂存中间结果,第四和第五层都是辅助存储器,它们与CPU的通信需要经过专门的接口现代的CPU的速度越来越快,它访问数据的周期只需几个纳秒(ns),而主存储器访问数据的周期需要几十个纳秒。计算机工作时CPU需频繁地与内存交换信息,这就会使CPU不得不进入等待状态,放慢运行速度,极大地影响计算机的整体性能。

为了有效解决CPU和内存之间的速度匹配问题,目前在微机上采用了高速缓冲存储器(Cache)的方案。Cache是高速缓冲存储器,其速度几乎与CPU一样快。它是CPU和内存之间的桥梁。

高速缓冲存储器cache(3)、高速缓冲存储器cacheCache按其功能可分为CPU内部的Cache和CPU外部的Cache两类。CPU内部的Cache称为一级Cache,简称L1(Level1)。它是CPU内核的一部分,与CPU制作在同一个芯片上,速度和CPU一致,容量较小,负责CPU内部的寄存器与外部Cache之间的缓冲。CPU外部的Cache称为二级Cache(L2,Level2)是相对独立的部件,是L1的补充,负责整个CPU与内存之间的缓冲。存储器的层次结构主要体现在两个层次上:(1)高速缓冲存储器和主存:解决存储器系统的速度问题。(2)主存和辅存:主要解决存储器的容量问题。(4)存储容量的度量在计算机中,信息的存储单位常采用位、字节、字等几种量纲。1、位(bit):一位二进制数(0或1)

2、字节(Byte):1Byte=8bit位(Bit):度量数据的最小单位字节(Byte):最常用的基本单位b7b6b5b4b3b2b1b0图1.4字节型存储单元的结构每个存储单元都有一个编号,此编号称为存储单元的地址(Address)。

CPU对存储器的读写操作都是通过地址来进行的。8个二进制位为一个单元?????????????????????????????????????????????????????????????????????????????????????????????????????????????????为了便于对存储器内存放的信息进行管理,整个内存被划分成多存储单元。一个单元(3)字(Word):又称计算机字,是可作为独立的信息单位进行运算或处理的若干位的组合,其中所含的二进制数位的个数称为字长。字长一般是字节的整数倍,微型计算机的CPU芯片有16位、32位和64位等规格。

3、总线和接口总线的一般概念总线是计算机系统各部件之间传输地址、数据和控制信息的通道。由一组导线和相关的控制、驱动电路组成。任一时刻,只能有一个部件/设备通过总线发送数据,其他部件只能处于接收状态。

总线的分类及特点按总线的层次结构内部总线:在CPU内部,寄存器之间和算术逻辑部件ALU与控制部件之间传输数据所用的总线称为片内总线(即芯片内部的总线)。系统总线:微机中各插件板与系统板之间的总线,用于插件板一级的互连;外部总线:微机和外部设备之间的总线,微机作为一种设备,通过该总线和其他设备进行信息与数据交换,它用于设备一级的互连。按传送信息的类型划分数据总线(DataBus,DB)传输数据信息,双向其宽度决定了其数据传输能力数据总线的位数是微型计算机的一个重要指标,通常与微处理的字长相一致。例如Intel8086微处理器字长16位,其数据总线宽度也是16位。地址总线(AddressBus,AB)传输地址信息,单向其宽度决定了微机系统的寻址能力比如8位微机的地址总线为16位,则其最大可寻址空间为216=64KB,16位微型机的地址总线为20位,其可寻址空间为220=1MB。一般来说,若地址总线为n位,则可寻址空间为2n字节。控制总线(ControlBus,CB)传输控制信号、时序信号和状态信号特点各异:入/出/双向等特性均不相同CPU地址总线(AB)内存、插槽I/O接口I/O设备外存接口硬盘等数据总线(DB)控制总线(CB)地址总线只能把地址信息从CPU单向地传送到存储器或I/O设备。?????????????????????????????????????????????????????????????????????????????????????????????????????????????????0x00000x00010xffff地址总线为16位,则其最大可寻址空间为216=64KB,地址范围从0~216-1,十六进制数为0x0000~0xffff0x00040x0003I/O接口:计算机和I/O设备的信息类型和格式可能不一样。通过I/O接口实现计算机与外部设备的隔离和信号转换。计算机和I/O设备信号传输处理的速度可能不匹配,信号时序有很大差别,通过I/O接口来进行缓冲和协调。计算机系统中输入/输出设备是必不可少的一部分,但是I/O设备一般不与CPU或内存储器直接相连,而是通过I/O接口与CPU或内存储器进行信息交换。

串行与并行接口——不可缺少的输入输出接口

1、一次只能发送和接受一个比特信息的设备的串行端口,常用于连接到调制解调器。

2、能够成组发送或者接受比特流的设备的并行端口,常用于连接打印机。硬盘接口在微型计算机中使用最广泛的硬盘接口标准是IDE和SCSI。

SCSI接口可以连接外部设备,如光盘、扫描仪、打印机。

USB接口

USB接口是一种新型的输入输出总线接口,可以连接多个外部设备。已普遍所用USB接口。计算机系统的主板上面常见的接口有:其他端口在扩展板上可以看到,而不是系统板上:1、将彩色显示器连接到显卡的视频端口。2、将声音设备连接到声卡的麦克风端口、扬声器端口、耳机端口和MIDI(音乐工具的数字界面)端口。这些端口都遵循经过行业协会认证的接口标准,这样一个厂商生产的设备可以连接到另一个厂商生产的计算机上。常见接口插槽PS2鼠标PS2键盘千兆网10/100M网卡USB并行口MIDI/游戏接口显示器接口13941394a音箱/线入接口/麦克风串行口

输入设备是向计算机输入信息的装置,输入到计算机中的信息都使用二进制中的“0”和“1”两个符号来表示。按照输入信息的类型,设备可以划分如下类型:数字和文字输入设备(键盘、写字板等)位置和命令输入设备(鼠标器、触摸屏等)图形输入设备(扫描仪,数码相机等)声音输入设备(话筒,MIDI演奏器等)视频输入设备(摄像机)温度、压力输入设备(温度、压力传感器)4、外设输入设备输出设备主要用于将计算机处理过的信息保存起来(用“0”和“1”的组合表示),或以人们能接受的数字、文字、符号、图形、语音、动画和图像等形式显示或打印出来。常用的输出设备有显示器、打印机、绘图仪、磁盘驱动器、数模转换器(D/A)等。

输出设备从外部看到的微机系统:主机内部的结构:

主板也称为主机板、系统板(SystemBoard)、母板(motherboard)。它固定在主机机箱箱体上的一块电路板,主板上装有大量的有源电子元件。其中主要组件有:CMOS、基本输入输出系统(Basicinputandoutputsystem,BIOS)、高速缓冲存储器(cache)、内存插槽、CPU插槽、键盘接口、软盘驱动器接口、硬盘驱动器接口、总线扩展插槽(提供ISA、PCI等扩展槽)、串行接口(COM1、COM2)、并行接口(打印机接口LPT1)等。因此,主板是计算机各种部件相互连接的纽带和桥梁。主板的实物图1、程序、指令和指令系统

一条计算机指令由若干二进制位来表示,指令中一般包含操作码和操作数两部分,其基本格式如图1.7所示。

其中操作码指明该指令要完成的操作,例如,加法、减法、乘法、除法、取数、存数等。操作数表示操作对象的内容或所在的存储单元地址。

图1.7指令的格式图1.8一条加法指令的位模式1.2.3计算机的工作原理5726用虚构的助记符可表示为ADDGX,BX,FX。图1.8是一个简单指令集中的一条16位指令的位模式示意图。如果将图中每个4位分别转换成十进制,即为5726,其中操作码5的含义是做加法,该指令表示将2号寄存器与6号寄存器中的数值相加,和放入7号寄存器中。由于二进制数码序列不易看清,一般用助记符描述指令,如图1.8中的指令,用虚构的助记符可表示为ADDGX,BX,FX。按功能分类,可将计算机的指令分为以下几种类型:数据传送指令:实现数据在不同地点之间的传送,这些不同的地点包括CPU、内存和寄存器。在存储器中,数据被传送至另一地点后,原处的数据仍未消失。数据处理指令:实现对数据进行算术运算和逻辑运算。程序控制指令:实现改变程序执行顺序的功能,如跳转指令、循环控制指令、子程序调用及返回指令。输入输出指令:实现CPU与外部设备之间的数据交换。其他指令:实现对计算机硬件的管理,如中断指令和标志位操作指令。

一台计算机所能执行的全部指令的集合称为该计算机的指令系统,或称该计算机的机器语言指令系统。 不同种类的计算机,其指令系统的指令数目与格式也不同,如80x86类型的CPU有64条运算指令。但无论哪种类型的计算机,其指令系统都包含有上述5种类型的指令。

微机的工作过程就是逐条执行进入到内存中的二进制机器指令流的过程。而一条指令的执行过程可以简单地分为五个操作阶段:取指令,根据程序计数器PC中的地址,从内存储器中取出指令,并送到指令寄存器中(IR)。2、一条指令执行完成后,将下一条要执行的指令地址送入程序计数器PC。

2、指令的执行过程3、分析指令。对指令寄存器中的指令进行分析,由译码器对指令中的操作码部分进行译码,得知该条指令要完成什么样的操作,并转换成相应的控制信号;由操作地址码部分得到操作数。4、执行指令。由操作控制电路发出完成该操作所需的一系列控制信号,完成该指令所要求的操作。5、检查有无中断请求。程序的执行过程就是周期性和重复性地进行这五个操作。计算机的基本工作过程,就是取指令、分析指令、执行指令,再取下一条指令,依次周而复始地执行指令序列的过程。该过程也就是某个程序的执行过程。微机的工作过程

下面以Intel8086CPU中的一条加法指令ADDAX,NUM为例来分析其执行过程,假设该指令存放在地址为0200H的存储单元中。指令中各部分的含义如下:

ADD加法的操作码。

AX一个通用寄存器。AX既提供操作对象,也用来存放运算结果。

NUM一个变量或变量的地址,该变量的值是加法运算的另一个操作对象。该指令执行的操作可以表示成:

AX←(AX)+(NUM)执行这条指令前,指令指针寄存器IP中存放的是该指令的地址,程序计数器PC0200H内存0200HADDAX,NUM指令寄存器ADDAX,NUMNUM23

AXALU3512译码ADDAX,NUMADDPC时序发生器解码器IRAAR总线接口ALUUSB控制器图形适配器磁盘控制器网络适配器I/O桥DR+1ADDRi,RjCPU内存I/O设备接口ARPC,PC

PC+1读主存,IR读出内容(指令)Ri

Ri+Rj,保存状态检测有无中断请求流水线把一条指令的操作分成多个更小的步骤,每个步骤的操作由专门的电路完成。利用各电路间可并行执行的特点,让各个步骤的执行在时间上重叠起来。译码2取指1译码1执行1取指2执行2取指3译码3执行3取指1取指1译码1执行1取指2执行2取指3译码3执行3译码2流水线执行方式

现代计算机是数字计算机,在计算机中的一切信息都是以数字的形式存放和处理的。数值数据:有确定的值并在坐标轴上有对应的点。非数值数据:如文字、字符、图形、声音、逻辑数据信息1.3数制转换、字符编码

信息必须数字化编码,才能传送、存储和处理。一、基本概念1.3数制转换、字符编码

二进制的优点:物理上容易实现,可靠性强运算简单,通用性强。1.3.1进位计数制什么是计数?如何计数?进位计数制(进位计数方法)

进位计数制的基本思想是,首先定义一个有限的计数方法,然后在此基础上再定义一个扩展该有限计数方法的方法,从而完成无限的计数。扩展有限计数方法的方法一般都是通过并列多个有限计数方法实现。进位方式十进制是人类最熟悉的计数方法。它的基数是10,表示每一位可能出现用于计数的符号个数,有0、1、2、3、4、5、6、7、8、9。最多计数十个量,它的位权是一个可能的计数符号在不同位置时所具有的基本值,如:……、10-2、10-1、100、101、102、……。如果需要计算的量超过十个,则需要扩展,即并列两个基本的有限计数(两位)。十进制BA基本的有限计数(0~9)扩展方向由于B是对A的扩展,因此,B的1相当于A的10高位低位扩展的另一个基本的有限计数(0~9)

十进制的基本计数规则是,逢十进一,借一当十。十进制的所有运算都是建立在此基础上。十进制数666.66表示为6102+6101+6100+610-1+610-2

。在与计算机相关的资料中,十进制数表示可以是101、101D、(101)10

十进制十进制表示形式

假设基数用b表示,各位分别用ai表示(0ai

b-1),则一个进位计数制数N可以表示为:

N=anbn+an-1bn-1+…+a1b1+a0b0+

a-1b-1+a-2b-2+…+a-mb-m

=

其中,m、n是正整数。第i位相应的权第i位数字666.66=6102+6101+6100+610-1+610-2二进制的基本计数规则是,逢二进一,借一当二。二进制的所有运算都是建立在此基础上。(11001010)2-(00010101)2=(10110101)2

(01001010)2+(00010101)2=(01011111)2

在与计算机相关的资料中,二进制数表示可以是101B、(101)2。

二进制二进制表示形式进位制二进制八进制十进制十六进制规则逢二进一,借一当二逢八进一,借一当八逢十进一,借一当十逢十六进一,借一当十六基数R=2R=8R=10R=16数符0,10,…70,…90,…9,A,…,E权2i8i10i16i形式表示BODH计算机中常用的四种进位计数制1.3.2不同进位计数制之间的转换

不同进位计数制之间的等值转换实质上是进行基数的转换。转换所依据的原则是:如果两个数的值相等,则两数的整数部分和小数部分的值一定分别相等。因此在转换时应对该数的整数部分和小数部分分别进行转换。E不同进位计数制之间的转换

尽管得到的表示结果是不同的,但该数本身并没有发生改变。等值转换实质上是进行基数的转换:各种进制数转换成十进制数

任何进制数转换成十进制数都比较简单,只需按该进制的位权按位展开、然后相加即可,其和便是相应的十进制数。这种方法称为按权相加法。比如:

(11011.01)2=1×24+1×23+0×22+1×21+1×20+0×2-1+1×2-2=16+8+0+2+1+0+0.25=(27.25)10(1316.04)8=1×83+3×82+1×81+6×80+0×8-1+4×8-2=512+192+48+6+0+0.0625=(758.0625)10(1FC.88)16=1×162+F×161+C×160+8×16-1+8×16-2=256+240+12+0.5+0.03125=(508.53125)10

如果A=(12367)8,则A除以(8)10的整数部分是(?)8,余数部分是7;

A中有(?)8个(64)10;A除以4的余数是(?)10。请思考

一个二进制数乘以4的运算能否通过改变小数点位置的方法实现?请思考(3456)10=(11011000000)2=(6600)8=(D80)16

16)3456

……016)216……816)13……13(D80)160

十进制数转换成其他进制数,需要对整数部分和小数部分采用不同的方法进行。(1)对于整数部分,将十进制数不断地除以要转换的进制的基数,并取得其余数。整数部分继续上述方法,直到商为0时停止。所有余数的反向排列即为所需要的某进制数。这种方法称为除基数取余法。例如:十进制数转换成其他进制数转换原理?2)3456……02)1728……02)864……02)432……02)216……02)108……02)54

……0(110110000000)22)27……12)13……12)6……02)3……12)1……108)3456……08)432……08)54……6(6600)88)6

……60十进制数转换成其他进制数设一个十进制整数X已被表示成一个二进制数(knkn-1…

k1k0),那么X按二进制的权展开如下:X=kn2n+kn-12n-1+…+k121+k020由于展开的前几项均为2的整数倍,因此k0即为X除以2的余数。也即,X/2的商为:kn2n-1+kn-12n-2+…+k120余数为k0转换原理:(2)对于小数部分,将十进制小数不断地乘以要转换的进制的基数,并取得其整数部分。余小数部分继续上述方法,直到满足精度(因为有可能出现循环现象,因此一般要给出小数位数)停止。所有整数的正向排列即为所需要的某进制小数。这种方法称为乘基数取整法。例如:(0.346)10=(0.0101100)2=(0.260)8=(0.58)16

(有一定精度)

0.346×2=0.69200.692×2=1.38410.384×2=0.76800.768×2=1.5361(0.0101100)20.536×2=1.07210.072×2=0.14400.144×2=0.2880

0.346×8=2.76820.768×8=6.1446(0.261)8

0.144×8=1.1521

0.346×16=5.8245(0.5D)160.824×16=13.18413十进制数转换成其他进制数转换原理?设一个十进制纯小数X已被表示成一个二进制数k-1k-2…

k-(m-1)k-m,那么X按二进制的权展开如下:X=k-12-1+k-22-2+…+k-m2-m将其乘以2,即为:k-1+k-22-1+…+k-m2-m+1转换原理:整数部分为k-1

对于既有整数又有小数部分的十进制数,则可对其整数与小数部分分别转换成二进制数,再把两部分结果合并起来。比如,(18)10=(10010)2;(0.8125)10=(0.1101)2

因此,(18.8125)10=(10010.1101)2

对于十进制转换成其它进制数时,要充分理解位权和基数的概念。通过位权和基数的概念,可以采用简便的转换方法。

十进制数转换成其他进制数=

(-11×128-1)10=(-11×2-7)10=(-1011×2-7)2=(-0.0001011)2=

(7+1×2-1)10=(111+1×2-1)2=(111+0.1)2=(111.1)2=

A×(8+2)=A×8+A×2=A×23+A×2A×10比如:(47/128)10把以下几个十进制数转化成二进制数:=(47/27)10=(101111/27)2=(0.0101111)2

因二进制数的基数是2,八进制数的基数是8,由于23=8,所以八进制的一位可以表达的计数范围对应于二进制的三位联合可以表达的计数范围。二进制数转换成八进制数的基本方法是,以小数点为基准,整数部分从右至左,每三位一组,最高位不足三位时补0;小数部分从左至右,每三位一组,最低有效位不足三位时补0。然后,每组改成等值的一位八进制数即可。这种方法称为“三归一法”。二进制数与八进制数、十六进制数之间的转换

同理,十六进制的一位可以表达的计数范围对应于二进制的四位联合可以表达的计数范围。二进制数转换成十六进制数采用“四归一法”:比如:(11101.10101)2

(00011101.10101000)2=(1D.A8)16

反之,八进制数转换成二进制数可采用“一拆三法”,即把一位八进制数写成等值的三位二进制数然后按权连接即可。十六进制数转换成二进制数可采用“一拆四法”。二进制数与八进制数、十六进制数之间的转换·1.3.3计算机中的数据表示及其存储

在计算机中,所有的数据、指令和符号都是用特定的二进制代码来表示的。一个数在计算机内部表示成的二进制形式称为机器数,原来的数称为这个机器数的真值。机器数具有下列特点:(1)由于计算机设备的限制,机器数有固定的位数,它所表示的数受到计算机固有位数的限制,所以机器数具有一定的范围,超过这个范围便无法正确表示,我们称这种情况为“溢出”。机器数及其表示

(2)机器数把其真值的符号数字化。计算机中使用具有两个不同状态的电子器件,它们只能分别代表数字符号“0”或“1”。那末,数的正负号也只能通过0和1来加以区分。通常,我们用机器数中规定的符号位(一般是一个数的最高位)取0或1,来分别表示其真值的正或负。(3)机器数中依靠格式上的约定表示小数点的位置。根据约定的小数点位置是否固定,分为定点表示法和浮点表示法两种。

关于正负号的处理,机器数也有不同的表示方法,常用的有四种:原码、补码、反码和移码。(1)原码:最高位(最左边一位)表示数的符号:“0”表示正号,“1”表示负号;其余各位表示数的大小,即这个数的绝对值。通常用[X]原表示X的原码。[+57]原=00111001[-57]原=10111001[-1]原=10000001[-127]原=11111111[+127]原=01111111[+0]原=00000000,[-0]原=10000000不唯一,有“正零”和“负零”之分一、机器数对于正负号的处理补码的理解——模(表示范围)举例:设a=4,b=6,用原码计算(a-b)。(2)补码表示法在讨论补码之前,先介绍模的概念。

“模”是指一个计量系统的计数范围。模实质上是计量器产生“溢出”的量,它的值在计量器上表示不出来,计量器上只能表示出模的余数。

以众所周知的时钟为例,设当前时钟指向1点,而准确时间应为5点,调整时间的方法有两种。一种方法是将时针倒拨8小时,即13-5=8;另一种方法是将时针顺拨4小时,即。由此可见,在以12为模的系统中加4和减8的效果是一样的,即(-8)=(+4)(Mod12)。 这里称-8和+4互补,它们的绝对值相加恰好等于时钟的模12。下面引入补码表示法。对于整数而言,若计算机字长为n位,则

x0≤x<2n-1 2n+x–2n-1≤x<0例如,n=8时

[+73]补=01001001[–73]补=100000000-01001001=10110111[–1]补=100000000-00000001=11111111[–127]

补=100000000-01111111=10000001[–128]

补=100000000-10000000=10000000从上述例中可知,补码的最高位不仅代表符号,而且还代表这一位对应一个负的值。[x]补=–128643216842110000101-128+4+1=-123

(a)将补码10000101转换成十进制数–128643216842110000110–122=–128++4+2(b)将十进制数–122转换成补码图1.108位补码对应的取值示例图1.10(a)是将一个补码10000101转换成十进制表示的数。图1.10(b)是将一个十进制数–122转换成补码表示的数。图1.10(a)所示是将一个补码10000101转换成十进制表示的数。10000101中最高位的1代表–27,另两位的1分别代表22、20,于是,它代表的十进制真值为:

–27+22+20=–123图1.10(b)所示是将一个十进制数–122转换成补码表示的数。因为

–122=–27+22+21,所以用补码表示就是10000110。图1.10说明一个8位补码对应的取值。可以发现,各位的权值与二进制转换是一致的,只是最高位取负。用补码表示整数时可表示的数值范围

仍以n=8为例,当X>0时,最大值为[X]补=01111111=+127;而当X<0时,绝对值最大为[X]补=10000000对应的真值为-128。所以8位整数的表示范围是-128~+127。数0的补码表示是唯一的,即

[0]

补=[+0]补=[-0]

补=00000000

对负数而言求其补码有一个简便的方法是:符号位取1,其余各位按其真值取反,然后在它的末位加1。简称“求反加1法”。【例1-8】

求-36的补码。解:第1步:将-36表示成二进制数:

-0100100

第2步:11011011

第3步:反之,从补码求真值的方法是:1、若符号位为0,则符号位后的二进制数就是真值,且为正;2、若符号位为1,则将符号位后的二进制代码逐位取反,再在末位加1,所得结果为真值,且为负。+111011100【例1-9】

求[11110110]补的真值。解:第1步:除符号位外,各位取反:

1111011010001001第2步:

10001010所以真值为(–0001010)2,即(–10)10+1根据补码定义,可以证明

[x]

补+[y]补=[x+y]

[x]

补―[y]补=[x―y]

补这表明,两个补码加减的结果也是补码,而且在运算时,符号位可同数值部分作为一个整体参加运算,如果符号位有进位,则舍去进位。[x]

补+[-y]补=[x-y]

补[x]

补+[y]补=[x+y]

补【例1-10】

设a=4,b=6,请用补码求和方法计算(a-b)。解:因为[a]

补=00000100,[-b]

补=11111010且[a-b]

补=[a]

补+[-b]

=00000100+11111010 =11111110所以(a-b)=-2[x]

补+[-y]补=[x-y]

补(3)反码:对于正数,反码与其原码相同,。对于负数,将其原码的符号位保持不变,其余各位取反。[+57]反=00111001[-57]反=11000110[-1]反=11111110[+127]反=01111111[-127]反=10000000[+0]反=00000000;[-0]反=11111111不唯一移码:把补码的符号位取反求得。[+57]原=00111001[-57]原=10111001[-1]原=10000001[-127]原=11111111[+127]原=01111111[+0]原=00000000,[-0]原=10000000不唯一假定一个数在机器中占用8位。(1)原码0X1|X|0X1|X|0X1|X|+1+7:00000111+0:00000000

-7:10000111-0:10000000+7:00000111+0:00000000-7:11111000-0:11111111+7:00000111+0:00000000-7:11111001-0:00000000

(2)反码(3)补码[X]原=[X]反=[X]补=真值原码反码补码+127011111110111111101111111+1000000010000000100000001+0000000000000000000000000-0100000001111111100000000-1100000011111111011111111-127111111111000000010000001-128无法表示无法表示10000000典型数编码举例:1、原码、反码表示数的范围是:+127~-127,而补码表示数的范围是:+127~-128;2、原码、反码有+0和-0之分;3、正数的原码、补码、反码的表示形式相同。结论:补码的理解——取反加1[x]补=x0≤x<2n-1

2n+x-2n-1≤x<02n+x=2n-1+1+x=111…1+1+x=111…1+x+1=111…1-|x|+1=|x|+1nnn二、机器数对于小数点的处理(1)定点表示法定点表示法中约定所有数据的小数点隐含固定在某个位置,该位置在计算机设计制造时已经规定,勿需再用其他状态来明显地表示小数点。用这种方法表示的数称为定点数。只能处理定点数的计算机叫做“定点机”。

把小数点位置固定在数的最高位之前,使机器所表示的数是纯小数。这种表示中,|X|min=2-n,|X|max=1-2-n(设尾数有n位)

S符号位小数点|N|<1定点整数S小数点小数点|N|<=2n–1

–10<=N<=2n–1n位定点小数例:00100000表示+0.25;10100000表示–0.25。

例:00100000表示+32;10100000表示–32。例:00100000表示32;10100000表示160。

无符号整数n位1.数的定点表示(2)浮点表示法浮点表示法中,数据的小数点位置不是固定不变的,而是可浮动的。对于浮点数而言,其小数点位置必须在数中明显地给出。任何一个二进制数可以表示为:

其中M为尾数;r为阶。尾数可正可负,同样,阶也可正可负,所以浮点数的格式一般分为:阶符、阶、数符和尾数四个部分。

二、机器数对于小数点的处理阶符数符阶尾数2.浮点表示小数点的位置随数值的不同而变化的叫浮点数例如:123.4可表示成

123.4*10012.34*1011.234*1020.1234*103▲

0.01234*104等

其中▲为最大规格化浮点数(即小数点后第1位非零的纯小数*阶数)

二进制也一样2.浮点数例:110.011(B)=1.10011×2+10=0.011001×2+100=+0.110011×2+11规范格式尾数最高位为1阶码数符阶符尾数1100110011N=数符×尾数×2阶符×阶码尾数的位数决定数的精度。阶码的位数决定数的范围。例题:(-123.45)10=(-1111011.01110011)2=(-0.111101101110011×27)2用两个字节表示该浮点数:机器数对于小数点的处理阶符数符阶尾数010000111111101122…26…202-1…2-73个字节1个字节1个字节1个字节精度约为小数点后两位:2-7≈

10-2

一般规定,尾数M是二进制定点纯小数,即约定小数点在尾数最高位之前;阶为二进制定点整数,即小数点位置固定在数的最低位之后。

|X|max=|N|min=机器数对于小数点的处理me设浮点数字长n位,则n=m+e+2;N=数符×尾数×2阶符×阶码最大最大正值最小最大负值n非数值信息编码

机内只能识别0,1两种状态,即相当于只识别0,1这两个字.

为了将要处理的各种信息让计算机能识别,需要人为地进行编码(即给计算机作一个约定用什么形式的0,1串表示什么).1.3.4非数值数据的编码

1.3.4非数值数据的编码

二进制数位的逻辑运算: 数学中的逻辑代数有“假”和“真”(False和True)这2种真值。由于二进制数字0和1恰好对应“假”和“真”,CPU的运算器能够非常容易地实现逻辑运算,从而使计算机具有基于逻辑运算的条件判断能力。 逻辑与(AND)、逻辑或(OR)和逻辑非(NOT)这3种运算是最基本的逻辑运算。1、逻辑型数据及其基本运算

3种基本逻辑运算规则ABA∧BA∨B-A00001010111001011110

下图是实现逻辑“非”、“与”和“或”门的图形符号及相应的运算规则。01计算机内部表示信息

用一个7位二进制码表示一个字符中文信息编码

用二个7位二进制码表示一个字符西文信息编码(1).ASCII码(AmericanStandardCodeforInformationInterchange)

常用字符有128个,编码从0到127。

空格0010000020H32

‘0’~‘9’00110000~0011100130H~39H48~57

‘A’~‘Z’01000001~0101101041H~5AH65~90

‘a’

~‘z’01100001~0111101061H~7AH97~122控制字符:0~32、127,共34个;普通字符(可打印字符):94个。每个字符占一个字节,用7位,最高位不用,一般为0。

字符二进制表示十六进制表示十进制表示2.西文字符每一个字符有一个唯一的编码。3.十进制的二进制编码表示1.BCD码(二~十进制编码)

BCD码(BinaryCodeDecimal)是用四位二进制数表示一位十进制数的编码。BCD码有多种编码方案,常用的是8421码,如下表所示。

十进制数BCD码

十进制数BCD码00000100001000010001110001000120010130001001130011160001011040100190001100150101200010000060110250010010170111280010100081000570101011191001780111100025=(0010

0101)BCD25用四位二进制码表示一位十进制数的编码为BCD码不是真正的二进制数4、汉字信息的数字化字符代码化(输入)机内码输入码向机内码转换机内码向字形码转换显示输出打印输出数字码拼音码字形码(1)汉字输入编码

汉字输入编码是用字母和数字对汉字进行的编码,目的是为了能使用只有字母和数字键的小键盘,将汉字输入计算机。目前汉字输入编码方法已有数百种之多。这些方法大多是按照汉字的字形,或者字音,或者音形结合来对汉字进行编码的。常用的输入编码方式有:国标区位码、全拼、双拼、微软拼音、五笔字形等。(2)汉字国标码 汉字交换码是在不同计算机系统之间进行信息交换使用的编码,也称国标码。国标码(GB2312-80):我国汉字交换码的国家标准6763个常用汉字一级汉字:3755个;按汉语拼音排列;二级汉字:3008个。按偏旁部首排列。682个非汉字字符字母、数字和各种符号,包括拉丁字母、俄文、日文平假名与片假名、希腊字母、汉语拼音等。国标码共选取6763个常用汉字和682个非汉字字符。并为每个字符规定了标准代码。GB2312—80信息交换编码表,排成一张94×94的图形字符代码表,表1.4是其部分示意。通常将表中的行称为区,列称为位,表中任何一个图形字符的位置可由区号与位号唯一确定。

GB2312—80中的每个图形符号的区、位可采用两个字节表示,每个字节用7位二进制编码。以第一字节表示行,第二字节表示列,这就是国标区位码,简称区位码。b60000b51111b40000b30000b20001b10110b01010位12345..94b6b5b4b3b2b1b0区01000011…..............011000016啊阿埃挨011000117薄雹保堡第2字节第1字节GB2312—80信息交换编码表图形字符代码表例如汉字“啊”,它的区位码是1601,即位于十进制数的第16区、第01位,对应的二进制编码第一字节为00010000,第二字节为00000001。国标码=区位码+2020H

加2020H的目的是使两个字节都避免与ASCII码的控制字符冲突。汉字“啊”的第一字节为00010000+00100000=00110000,第二字节为00000001+00100000=00100001,即它的国标码是十六进制数3021H。(3)汉字机内码

汉字机内码是汉字处理系统中用来存储、处理、传输汉字用的代码。在西文系统中,没有交换码和机内码之分,每个西文字符的机内码即为用一个字节表示的ASCII码,一般只用其中的7位表示128种字符,最高位为0。 汉字系统中的机内码在编码时必须考虑到既能与ASCII码严格区分,又与国标GB2312—80汉字字符集有简单的对应关系。采用的方法之一是将表示一个汉字的国标码的2个字节的最高位都设置为“1”。

每个汉字占两个字节,机内码最高位为1。例:汉字国标码汉字内码

3473H(00110100,01110011B)1011010011110011B由此可见,汉字内码与国标码之间的关系是:机内码=国标码+8080H=区位码+A0A0H用2字节的机内码可表示汉字的个数是216-2=214=16384,足够覆盖常用的近8000个汉字。应当注意,汉字的区位码和国标码是唯一的,而机内码的表示则可能随系统的不同而使用不同的方法。国标码=区位码+2020HB4F3H(4)汉字字形码 汉字字形码是汉字笔画构成的图形编码,是为了实现汉字输出而进行的编码。要在输出设备上显示一个汉字,通常是把单个汉字离散成网点,每点以一个二进制位表示,由此组成的汉字点阵字模称为汉字字形码。通常汉字显示使用16×16点阵,汉字打印可选用24×24,32×32,48×48等点阵。点数愈多,打印的字体愈美观,但汉字库占用的存储空间也愈大。

汉字字形码占用的存储空间:

例:一个16╳16的汉字:

16╱8

╳16=32字节一个24╳24的汉字:

24╱8

╳24=72字节一个32╳32的汉字:

32╱8

╳32=128字节

一个汉字字形码究竟占多少个字节由汉字的字模决定。(5)汉字地址码 每个汉字字形码在汉字字库中的相对位移地址称为汉字地址码。当需要输出汉字时,必须通过地址码,才能在汉字字库中取到所需的字形码,在输出设备上形成可见的汉字字形。

输入码国标码机内码地址码字形码汉字信息处理系统的模型1.4程序设计语言1.程序设计语言概念

用于书写计算机程序的语言称为程序设计语言(programminglanguage)。 简单地说,语言的基础是一组文字记号和一组规则,根据规则由文字记号构成的记号串的总体就是语言。使用程序设计语言撰写的符合语法规则和算法要求的记号串就是程序。

根据计算机本身的发展,计算机语言经历三个发展阶段,每个发展阶段具有不同性质的计算机语言。三个发展阶段的计算机语言分别是机器语言(也称为二进制语言)、汇编语言和高级语言。

1.4程序设计语言机器语言直接面向计算机本身。这种语言通过0和1的各种排列组合,表达不同的语义。0和1可以直接控制计算机本身的各种电子元件的开和关,因此,这种语言可以直接交给计算机阅读。使用位模式的机器指令编制程序不仅效率低下、容易出错,而且不易辨认与交流,程序的调试与软件维护尤其困难。机器语言

例如,“把寄存器3的数据送入寄存器5中”可以表示为“MOVR3,R5”。为了将使用指令助记符编写的程序转换为机器语言,人们又开发了专用于转

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论