C语言程序设计预备知识.PPTx

上传人:莉*** 文档编号:87183170 上传时间:2023-04-16 格式:PPTX 页数:47 大小:420.16KB
返回 下载 相关 举报
C语言程序设计预备知识.PPTx_第1页
第1页 / 共47页
C语言程序设计预备知识.PPTx_第2页
第2页 / 共47页
点击查看更多>>
资源描述

《C语言程序设计预备知识.PPTx》由会员分享,可在线阅读,更多相关《C语言程序设计预备知识.PPTx(47页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、第第1 1章:章:C C语言程序言程序设计预备知知识 u学习的意义学习的意义 1、什么是计算机?、什么是计算机?计算机是以逻辑部件为物质基础,能够对信息计算机是以逻辑部件为物质基础,能够对信息进行自动处理的机器进行自动处理的机器。逻辑部件其实就是指计算机。逻辑部件其实就是指计算机的硬件系统,而对信息的自动处理则是由计算机的的硬件系统,而对信息的自动处理则是由计算机的软件系统来实现的软件系统来实现的 2 2、何为、何为“信息信息”?“信息信息”包括的范围很广,它可以是数字、文字、包括的范围很广,它可以是数字、文字、图像、声音等图像、声音等 3 3、计算机中如何表示、计算机中如何表示“信息信息”?

2、不管哪种类型的信息在计算机中最终都是以不管哪种类型的信息在计算机中最终都是以二进二进制制数据信息来表示和处理数据信息来表示和处理 101010111111.第1页/共47页4、什么是、什么是C语言?语言?结论:结论:C C语言就是编制计算机软件的开发工具。具体就是对这些语言就是编制计算机软件的开发工具。具体就是对这些信息进行处理的软件工具。信息进行处理的软件工具。除了:除了:了解计算机硬件系统的组成(因为硬件是软件的物质基础)了解计算机硬件系统的组成(因为硬件是软件的物质基础)。了解计算机软件系统的组成(因为软件是硬件的灵魂)。了解计算机软件系统的组成(因为软件是硬件的灵魂)。更重要的是:更重

3、要的是:了解二进制数在计算机中的表示形式、表示了解二进制数在计算机中的表示形式、表示范围以及二进制数的算术运算和逻辑运算,另外就是数据在计范围以及二进制数的算术运算和逻辑运算,另外就是数据在计算机中是如何存储的算机中是如何存储的 。学好学好学好学好C C C C语言必须掌语言必须掌语言必须掌语言必须掌握的基础知识!握的基础知识!握的基础知识!握的基础知识!第2页/共47页u学习目标学习目标 了解计算机的系统组成及工作原理;了解计算机的系统组成及工作原理;掌握二进制数的表示及二进制数与其它进制数的掌握二进制数的表示及二进制数与其它进制数的转换方法;转换方法;掌握机器数的表示形式和表示范围,特别是

4、补码掌握机器数的表示形式和表示范围,特别是补码表示形式;表示形式;掌握补码的加、减运算方法;掌握补码的加、减运算方法;掌握二进制数的位运算方法;掌握二进制数的位运算方法;这些是更好地理解和掌握这些是更好地理解和掌握这些是更好地理解和掌握这些是更好地理解和掌握C C C C语言语言语言语言数据类型(第数据类型(第数据类型(第数据类型(第3 3 3 3章)的基础。章)的基础。章)的基础。章)的基础。第3页/共47页u学习内容学习内容 计算机系统组成及工作原理简介计算机系统组成及工作原理简介 进位计数制及其转换(二进制、八进制、十六进进位计数制及其转换(二进制、八进制、十六进制)制)机器数的表示形式

5、及其表示范围(原码、补码、机器数的表示形式及其表示范围(原码、补码、反码)反码)二进制数的位运算(与、或、非、异或)二进制数的位运算(与、或、非、异或)本章小结本章小结 第4页/共47页1.1 1.1 计算机系统组成及工作原理简介计算机系统组成及工作原理简介计算机系统 硬件系统软件系统 运算器运算器运算器运算器控制器控制器控制器控制器存储器存储器存储器存储器输入设备输入设备输入设备输入设备输出设备输出设备输出设备输出设备内存内存内存内存外存外存外存外存CPUCPUCPUCPU主机主机主机主机外围外围外围外围设备设备设备设备系统软件系统软件系统软件系统软件应用软件应用软件应用软件应用软件 硬件是

6、指构成计算机的物硬件是指构成计算机的物硬件是指构成计算机的物硬件是指构成计算机的物理装置,看得见、摸得着,是理装置,看得见、摸得着,是理装置,看得见、摸得着,是理装置,看得见、摸得着,是一些实实在在的有形实体一些实实在在的有形实体一些实实在在的有形实体一些实实在在的有形实体 软件是指计算机程序及软件是指计算机程序及软件是指计算机程序及软件是指计算机程序及有关程序的技术文档资料有关程序的技术文档资料有关程序的技术文档资料有关程序的技术文档资料 第5页/共47页u硬件系统的基本组成及工作原理硬件系统的基本组成及工作原理输入设备输入设备输入设备输入设备内存储器内存储器内存储器内存储器外存储器外存储器

7、外存储器外存储器运算器运算器运算器运算器控制器控制器控制器控制器输出设备输出设备输出设备输出设备信信信信 息息息息(如程序、原始数据如程序、原始数据如程序、原始数据如程序、原始数据)(存存存存)数据数据数据数据(取取取取)数据数据数据数据运算命令运算命令运算命令运算命令输出命令输出命令输出命令输出命令输出信息输出信息输出信息输出信息(存存存存)数据数据数据数据存存存存 取取取取 指指指指 令令令令程程程程 序序序序 指指指指 令令令令数数数数 据据据据输输输输 入入入入 指指指指 令令令令数据信息数据信息数据信息数据信息控制信息控制信息控制信息控制信息第6页/共47页(1)(1)运算器运算器

8、(ALU-Arithmetic Logic Unit(ALU-Arithmetic Logic Unit)运算器又称运算器又称算术逻辑部件算术逻辑部件,简称,简称ALUALU,是计算机,是计算机用来进行数据运算的部件。数据运算包括用来进行数据运算的部件。数据运算包括算术运算术运算算和和逻辑运算逻辑运算,后者常被忽视,但恰恰是逻辑运,后者常被忽视,但恰恰是逻辑运算使计算机能进行因果关系分析。一般运算器都算使计算机能进行因果关系分析。一般运算器都具有逻辑运算能力具有逻辑运算能力 (2)(2)控制器控制器 (Controller(Controller)控制器是计算机的指挥系统,计算机的工作就是控制器

9、是计算机的指挥系统,计算机的工作就是在控制器控制下有条不紊协调工作的。控制器通在控制器控制下有条不紊协调工作的。控制器通过地址访问存储器,逐条取出选中单元的指令,过地址访问存储器,逐条取出选中单元的指令,分析指令,根据指令产生相应的控制信号作用于分析指令,根据指令产生相应的控制信号作用于其它各个部件,控制其它部件完成指令要求的操其它各个部件,控制其它部件完成指令要求的操作。上述过程周而复始,保证了计算机能自动、作。上述过程周而复始,保证了计算机能自动、连续地工作连续地工作 第7页/共47页 一般把运算器和控制器做在一块集成电路芯片上,一般把运算器和控制器做在一块集成电路芯片上,称为称为中央处理

10、器中央处理器,简称为,简称为CPUCPU(Central Processing Central Processing UnitUnit)。它是计算机核心和关键,计算机的性能主要)。它是计算机核心和关键,计算机的性能主要取决于取决于CPUCPU。(3)(3)存储器存储器 (Memory(Memory)存储器是计算机中具有记忆能力的部件,用来存放存储器是计算机中具有记忆能力的部件,用来存放程序程序或或数据数据。程序和数据是两种不同的信息,应放在。程序和数据是两种不同的信息,应放在不同的地方,两者不可混淆不同的地方,两者不可混淆 。指令总是送到控制器,指令总是送到控制器,而数据则总是送到运算器。存储

11、器就是一种能根据地而数据则总是送到运算器。存储器就是一种能根据地址接收或提供指令或数据的装置。址接收或提供指令或数据的装置。存储器可分为两大类存储器可分为两大类:即:即内存储器内存储器和和外存储器外存储器。第8页/共47页 内存储器内存储器简称内存,又称主存,是简称内存,又称主存,是CPUCPU能根据地址线直能根据地址线直接寻址的存储空间,是计算机内部存放数据的硬件设接寻址的存储空间,是计算机内部存放数据的硬件设备,是程序和数据存储的基本要素,由半导体器件制备,是程序和数据存储的基本要素,由半导体器件制成。内存中存放数据是以相应的内存单元为单位进行成。内存中存放数据是以相应的内存单元为单位进行

12、存放的,内存单元的大小可以是一个字节,也可以是存放的,内存单元的大小可以是一个字节,也可以是多个字节,每个内存单元都有一个编号,它表示该内多个字节,每个内存单元都有一个编号,它表示该内存单元所对应的存单元所对应的内存地址内存地址。内存的特点是存取速度快,。内存的特点是存取速度快,基本上能与基本上能与CPUCPU速度相匹配。速度相匹配。外存储器外存储器简称外存,它作为一种辅助存储设备,主要简称外存,它作为一种辅助存储设备,主要用来存放一些暂时不用而又需常期保存的程序或数据。用来存放一些暂时不用而又需常期保存的程序或数据。当需要执行外存中的程序或处理外存中的数据时,必当需要执行外存中的程序或处理外

13、存中的数据时,必须通过须通过CPUCPU输入输出指令,将其调入内存中才能被输入输出指令,将其调入内存中才能被CPUCPU执行处理,所以外存实际上属于输入输出设备。执行处理,所以外存实际上属于输入输出设备。第9页/共47页(4)(4)输入设备输入设备 (Input Device(Input Device)输入设备是用来输入程序和数据的部件。常见的输入设备是用来输入程序和数据的部件。常见的输入设备有:键盘、鼠标、麦克风、扫描仪、手输入设备有:键盘、鼠标、麦克风、扫描仪、手写板、数码相机、摄像头等。写板、数码相机、摄像头等。(5)(5)输出设备输出设备 (Output Device(Output D

14、evice)输出设备正好与输入设备相反,是用来输出结果输出设备正好与输入设备相反,是用来输出结果的部件。要求输出设备能以人们所能接受的形的部件。要求输出设备能以人们所能接受的形式输出信息,如以文字、图形的形式在显示器式输出信息,如以文字、图形的形式在显示器上输出。除显示器外,常用的输出设备还有音上输出。除显示器外,常用的输出设备还有音箱、打印机、绘图仪等。箱、打印机、绘图仪等。第10页/共47页计算机的工作原理:计算机的工作原理:各种各样的信息,通过输入设备,进入计算机各种各样的信息,通过输入设备,进入计算机的存储器,然后送到运算器,运算完毕把结果的存储器,然后送到运算器,运算完毕把结果送到存

15、储器存储,最后通过输出设备显示出来。送到存储器存储,最后通过输出设备显示出来。整个过程由控制器进行控制。整个过程由控制器进行控制。u软件系统的组成及分类软件系统的组成及分类 软件是指计算机程序及有关程序的技术文档资料。软件是指计算机程序及有关程序的技术文档资料。两者中更为重要的是程序,它是计算机进行数据两者中更为重要的是程序,它是计算机进行数据处理的指令集,也是计算机正常工作最重要的因处理的指令集,也是计算机正常工作最重要的因素。在不太严格情况下,认为程序就是软件。素。在不太严格情况下,认为程序就是软件。根据软件用途将其分为两大类:根据软件用途将其分为两大类:系统软件系统软件和和应用软件应用软

16、件 第11页/共47页(1)(1)系统软件系统软件 系统软件是指管理、监控、维护计算机正常工作系统软件是指管理、监控、维护计算机正常工作和供用户操作使用计算机的软件。这类软件一般和供用户操作使用计算机的软件。这类软件一般与具体应用无关,是在系统一级上提供的服务。与具体应用无关,是在系统一级上提供的服务。系统软件主要包括以下两类:系统软件主要包括以下两类:一类是面向计算机一类是面向计算机本身的软件本身的软件,如操作系统、诊断程序等。,如操作系统、诊断程序等。另一类另一类是面向用户的软件是面向用户的软件,如各种语言处理程序(象,如各种语言处理程序(象BCBC、VCVC等)、实用程序、字处理程序等。

17、等)、实用程序、字处理程序等。(2)(2)应用软件应用软件 应用软件是指某特定领域中的某种具体应用,供应用软件是指某特定领域中的某种具体应用,供最终用户使用的软件,它必须在操作系统的基础最终用户使用的软件,它必须在操作系统的基础上运行。如财务报表软件、数据库应用软件等。上运行。如财务报表软件、数据库应用软件等。初学初学C C语言的读者主要任务是学习如何编写应用语言的读者主要任务是学习如何编写应用软件。软件。第12页/共47页u软件与硬件的关系软件与硬件的关系 硬件和软件是一个完整的计算机系统互相依存的硬件和软件是一个完整的计算机系统互相依存的两大部分,它们的关系主要体现在以下几个方面。两大部分

18、,它们的关系主要体现在以下几个方面。(1 1)硬件和软件互相依存。)硬件和软件互相依存。硬件是软件赖以工作的物质基础,软件的正常工硬件是软件赖以工作的物质基础,软件的正常工作是硬件发挥作用的惟一途径作是硬件发挥作用的惟一途径,软件是用户与机软件是用户与机器的接口。计算机系统必须要配备完善的软件系器的接口。计算机系统必须要配备完善的软件系统才能正常工作,且充分发挥其硬件的各种功能。统才能正常工作,且充分发挥其硬件的各种功能。(2)硬件和软件无严格界线。)硬件和软件无严格界线。随着计算机技术的发展,在许多情况下,计算机的随着计算机技术的发展,在许多情况下,计算机的某些功能既可以由硬件实现,也可以由

19、软件来实现。因某些功能既可以由硬件实现,也可以由软件来实现。因此,硬件与软件在一定意义上说没有绝对严格的界线。此,硬件与软件在一定意义上说没有绝对严格的界线。(3 3)硬件和软件协同发展。)硬件和软件协同发展。计算机软件随着硬件技术的迅速发展而发展,而计算机软件随着硬件技术的迅速发展而发展,而软件的不断发展与完善又促进硬件的更新,两者密切软件的不断发展与完善又促进硬件的更新,两者密切地交织发展,缺一不可。地交织发展,缺一不可。第13页/共47页1.2 1.2 进位计数制及其转换进位计数制及其转换 数码、基与权数码、基与权 数码:数码:表示数的符号表示数的符号 基数基数:数码的个数:数码的个数

20、权权 :每一位所具有的值每一位所具有的值数制数制第14页/共47页数制数制基基权权表示表示数码数码特点特点10101010,1010,1010,十进制数十进制数09091010逢十进一逢十进一二进制数二进制数01012 22 2 2 2,22,22,逢二进一逢二进一八进制数八进制数07078 88 8 8 8,88,88,逢八进一逢八进一十六进制数十六进制数09,AF,af161616,16,16,逢十六进一十进制:十进制:4956=4956=4 4 10+910+9 10+510+5 10+610+6 1010 二进制:二进制:1011=11011=1 2+02+0 2+12+1 2+12+

21、1 22十六进制:81AE=816+116+1016+1416八进制:八进制:4275=44275=4 8+28+2 8+78+7 8+58+5 88第15页/共47页进制之间的相互转换进制之间的相互转换l二进制、八进制、十六进制转换成十进制二进制、八进制、十六进制转换成十进制 方法方法:按权相加按权相加第16页/共47页进制之间的相互转换进制之间的相互转换l二进制、八进制、十六进制转换成十进制二进制、八进制、十六进制转换成十进制 方法方法:按权相加按权相加l十进制转换成二进制、八进制、十六进制步骤步骤步骤步骤:首先进行整数部分转换,然后进行小数部分转换。首先进行整数部分转换,然后进行小数部分

22、转换。首先进行整数部分转换,然后进行小数部分转换。首先进行整数部分转换,然后进行小数部分转换。(1 1 1 1)整数部分转换)整数部分转换)整数部分转换)整数部分转换uu原理原理原理原理:uu方法:连续除以基,从低到高记录余数,直至商为方法:连续除以基,从低到高记录余数,直至商为方法:连续除以基,从低到高记录余数,直至商为方法:连续除以基,从低到高记录余数,直至商为0 0 0 0第17页/共47页整数部分转换举例整数部分转换举例例例例例 把十进制数把十进制数把十进制数把十进制数5959转换成二进制数转换成二进制数转换成二进制数转换成二进制数59592 229292 214142 27 72 2

23、3 32 21 12 20 0(59)(59)1010=(111011)=(111011)2 21 11 10 01 11 11 11 1 1 0 1 11 1 1 0 1 1余余余余余余余余余余余余第一次得到的余第一次得到的余第一次得到的余第一次得到的余数是最低位数是最低位数是最低位数是最低位最后得到的余数最后得到的余数最后得到的余数最后得到的余数是最高位是最高位是最高位是最高位例例 把十进制数把十进制数159159转换成八进制数转换成八进制数1591598 819198 82 28 80 0(159)(159)1010=(237)=(237)8 82 3 7 2 3 7 余余 7 7余余

24、3 3余余 2 2例例例例 把十进制数把十进制数把十进制数把十进制数459459转换成十六进制数转换成十六进制数转换成十六进制数转换成十六进制数4591628161160(459)10=(1CB)161 C B 余11余12余 1第18页/共47页(2 2 2 2)小数部分转换)小数部分转换)小数部分转换)小数部分转换uu原理原理原理原理:uu方法:连续乘以基,从高到低记录整数部分,直至方法:连续乘以基,从高到低记录整数部分,直至方法:连续乘以基,从高到低记录整数部分,直至方法:连续乘以基,从高到低记录整数部分,直至结果的小数部分为结果的小数部分为结果的小数部分为结果的小数部分为0 0 0 0

25、 在十进制的小数部分转换中,有时连续乘以在十进制的小数部分转换中,有时连续乘以在十进制的小数部分转换中,有时连续乘以在十进制的小数部分转换中,有时连续乘以2 2不一不一不一不一定能使小数部分等于定能使小数部分等于定能使小数部分等于定能使小数部分等于0 0,这说明该十进制小数不能用,这说明该十进制小数不能用,这说明该十进制小数不能用,这说明该十进制小数不能用有限位二进制小数表示。这时,只要取足够多的位数,有限位二进制小数表示。这时,只要取足够多的位数,有限位二进制小数表示。这时,只要取足够多的位数,有限位二进制小数表示。这时,只要取足够多的位数,使其误差达到所要求的精度就可以了。使其误差达到所要

26、求的精度就可以了。使其误差达到所要求的精度就可以了。使其误差达到所要求的精度就可以了。例 将十进制数0.8125转换成二进制 0.8125 2 1.625 (b1 1)最高小数最高小数位位 0.625 2 1.25 (b2 1)0.25 2 0.5 (b3 0)0.5 2 1.0 (b4 1)最低小数最低小数位位 所以 (0.8125)10 (0.1101)2注意:注意:注意:注意:对于小数部分的转换式中的整数不参加对于小数部分的转换式中的整数不参加对于小数部分的转换式中的整数不参加对于小数部分的转换式中的整数不参加连乘,第一次乘以连乘,第一次乘以连乘,第一次乘以连乘,第一次乘以2 2 2 2

27、所得到的整数部分是二进所得到的整数部分是二进所得到的整数部分是二进所得到的整数部分是二进制数小数的最高位,最后所得到的整数部分是制数小数的最高位,最后所得到的整数部分是制数小数的最高位,最后所得到的整数部分是制数小数的最高位,最后所得到的整数部分是二进制数小数的最低位。二进制数小数的最低位。二进制数小数的最低位。二进制数小数的最低位。例 将十进制数0.8123转换成二进制 0.8123 2 1.6246 (b1 1)最高小最高小数位数位 0.6246 2 1.2492 (b2 1)0.2492 2 0.4984 (b3 0)0.4984 2 0.9968 (b4 0)最低小最低小数位数位 所以

28、 (0.8123)10 (0.1100)2例 将十进制数0.8123转换成八进制 0.8123 8 6.4984 (b1 6)最高小最高小数位数位 0.4984 8 3.9872 (b2 3)0.9872 8 7.8976 (b3 7)0.8976 8 7.1808 (b4 7)最低小最低小数位数位 所以 (0.8123)10 (0.6377)8第19页/共47页二进制二进制八进制八进制 方法:从小数点开始,分别向左、右按方法:从小数点开始,分别向左、右按3 3位分组转换成位分组转换成对应的八进制数字字符,最后不满对应的八进制数字字符,最后不满3 3位的,则需补位的,则需补0 0。000 00

29、00 0001 1001 1010 2010 2011 3011 3100 4100 4101 5101 5110 6110 6111 7111 7例例例例 将二进制数将二进制数(1101101.10101)(1101101.10101)2 2转换成八进制转换成八进制数数所以所以 (1101101.10101)(1101101.10101)2 2 (155.52)(155.52)8 8二进制数:二进制数:二进制数:二进制数:00001 1 101101 101101 .101101 01010 01八进制数:八进制数:八进制数:八进制数:55.52第20页/共47页八进制八进制二进制二进制 方

30、法:将每位八进制数用方法:将每位八进制数用3 3位二进制表示即可位二进制表示即可 。000 0000 0001 1001 1010 2010 2011 3011 3100 4100 4101 5101 5110 6110 6111 7111 7例例例例 将八进制数将八进制数(345.64)(345.64)8 8转换成二进制数转换成二进制数所以所以 (345.64)(345.64)2 2 (11100101.1101)(11100101.1101)2 2八进制数:八进制数:八进制数:八进制数:3 3 4 4 5 5 .6 6 4 4011二进制数:二进制数:二进制数:二进制数:100 101 .

31、110 100第21页/共47页二进制二进制十六进制十六进制 方法:从小数点开始,分别向左、右按方法:从小数点开始,分别向左、右按4 4位分位分组转换成对应的十六进制数字字符,最后不满组转换成对应的十六进制数字字符,最后不满4 4位的,则需补位的,则需补0 0。例例例例 将二进制数将二进制数(1101101.10101)(1101101.10101)2 2转换成转换成1616进制进制数数所以所以 (1101101.10101)(1101101.10101)2 2 (6D.A8)(6D.A8)1616二进制数:二进制数:二进制数:二进制数:01100110 11011101 .10101010

32、100010006十六进制数:十六进制数:十六进制数:十六进制数:D.A80000 00001 10010 20011 30100 40101 50110 60111 71000 81001 91010 A1011 B1100 C1101 D1110 E1111 F第22页/共47页十六进制十六进制二进制二进制 方法:将每位十六进制数用方法:将每位十六进制数用4 4位二进制表示即可位二进制表示即可 。例例例例 将十六进制数将十六进制数(A9D.6C)(A9D.6C)1616转换成二进制数转换成二进制数所以所以 (A9D.6C)(A9D.6C)2 2 (101010011101.011011)(

33、101010011101.011011)2 2十六进制数:十六进制数:十六进制数:十六进制数:A A 9 9 D D .6 6 C C1010二进制数:二进制数:二进制数:二进制数:0000 00001 10010 20011 30100 40101 50110 60111 71000 81001 91010 A1011 B1100 C1101 D1110 E1111 F1001 1101 .0110 1100请问请问.?(9FDA.4B)(9FDA.4B)1616=(_)(_)8 8(256)(256)7 7=(_)=(_)6 6第23页/共47页1.3 1.3 机器数的表示形式及其表示范围

34、机器数的表示形式及其表示范围真值与机器数真值与机器数 真值:真值:一个带符号数由两部分组成:一部分表示数的符一个带符号数由两部分组成:一部分表示数的符号,另一部分表示数的数值。一般,直接用正号号,另一部分表示数的数值。一般,直接用正号“”和负和负号号“”来表示符号的二进制数,叫做符号数的真值。来表示符号的二进制数,叫做符号数的真值。机器数机器数:计算机中的数是用二进制来表示的,数的符号计算机中的数是用二进制来表示的,数的符号也是用二进制来表示的。把一个数连同其符号在内在机器中也是用二进制来表示的。把一个数连同其符号在内在机器中的表示加以数值化,这样的数称为机器数。的表示加以数值化,这样的数称为

35、机器数。一般用最高有效位来表示数的符号,正数用一般用最高有效位来表示数的符号,正数用0 0表示,负数表示,负数用用1 1表示。表示。真值:真值:真值:真值:+1 0 1 1 -1 0 1 1+1 0 1 1 -1 0 1 1机器数:机器数:机器数:机器数:0 0 1 0 1 1 1 0 1 1 1 1 1 0 1 1 1 0 1 1数值数值数值数值符号符号符号符号数值数值数值数值符号符号符号符号 机器数机器数机器数机器数的表示的表示的表示的表示形式形式形式形式原码原码原码原码补码补码补码补码反码反码反码反码第24页/共47页原码原码 原原码码又又称称为为“符符号号-数数值值表表示示”。在在以以

36、原原码码形形式式表表示示的的正正数数和和负负数数中中,第第1 1位位表表示示符符号号位位,对对于于正正数数,符符号号位位记记为为0 0,对于负数,符号位记为对于负数,符号位记为1 1,其余各位表示数值部分。,其余各位表示数值部分。例:例:N1 +10011 N2 -01010 N1原 010011 N2原 101010 根根据据上上述述原原码码形形成成规规则则,一一个个n n位位的的整整数数N N(包包含含一一位位符符号号位)的原码一般表示为:位)的原码一般表示为:N 0 N 2n-1N原 2n-1 N 2n-1 N 0第25页/共47页原码原码 对于这样的对于这样的n n位整数其原码表示的数

37、的范围为:位整数其原码表示的数的范围为:(2n-11)(2n-1 1)。N 0 N 1N原 1 N 1 N 01111n-1个个10111n-1个个1 对对于于定定点点小小数数,通通常常小小数数点点定定在在最最高高位位的的左左边边,这这时时数数值值小于小于1 1。定点小数原码一般表示为:。定点小数原码一般表示为:对于这样的对于这样的m m位小数位小数(含一符号位含一符号位)其原码表示数的范围为:其原码表示数的范围为:(1 2-(m-1)(1 2-(m-1)。第26页/共47页原码原码1.111m-1个个10.111m-1个个1总结:总结:当当N N为正数时,为正数时,NN原原和和N N的区别只

38、是增加一位用的区别只是增加一位用0 0表示的符号表示的符号位。由于在数的左边增加一位位。由于在数的左边增加一位0 0对该数的数值并无影响,所以对该数的数值并无影响,所以NN原就是原就是N N本身。本身。当当N N为负数时,为负数时,NN原和原和N N的区别是增加一位用的区别是增加一位用1 1表示的符号表示的符号位。位。在原码表示中,有两种不同形式的在原码表示中,有两种不同形式的0 0,即:,即:00原原 0000000 0 或或 0.000.000 0 00原原 1001000 0 或或 1.001.000 0第27页/共47页反码反码 反反码码又又称称为为“对对1 1的的补补数数”。用用反反

39、码码表表示示时时,左左边边第第一一位位也也是是符符号号位位,符符号号位位为为0 0代代表表正正数数,符符号号位位为为1 1代代表表负负数数,对对于于负负数数,反反码码的的数数值值是是将将原原码码数数值值按按位位求求反反,而而对对于于正正数数,反码和原码相同。所以,反码数值的形成与它的符号位有关反码和原码相同。所以,反码数值的形成与它的符号位有关 例:例:N1 +10011 N2 -01010 N1反 010011 N2反 110101 根根据据上上述述反反码码形形成成规规则则,一一个个n n位位的的整整数数N N(包包含含一一位位符符号号位)的反码一般表示为:位)的反码一般表示为:N 0 N

40、2n-1N反 (2n1)N 2n-1 N 0第28页/共47页反码反码 对于这样的对于这样的n n位整数其反码表示的数的范围为:位整数其反码表示的数的范围为:(2n-11)(2n-1 1)。N 0 N 1N反 (2 2-m)N 1 N 01000n-1个个00111n-1个个1 对对于于定定点点小小数数,若若小小数数部部分分的的位位数数为为m m位位,则则定定点点小小数数反反码一般表示为:码一般表示为:对于这样的对于这样的m m位小数位小数(含一符号位含一符号位)其反码表示数的范围为:其反码表示数的范围为:(1 2-(m-1)(1 2-(m-1)。第29页/共47页反码反码1.000m-1个个

41、00.111m-1个个1总结:总结:正数正数N N的反码的反码NN反反与原码与原码NN原原相同。相同。对于负数对于负数N N,其反码,其反码NN反反的的符号为的的符号为1 1,数值部分是将原码,数值部分是将原码数值按位求反。数值按位求反。在反码表示中,有两种不同形式的在反码表示中,有两种不同形式的0 0,即:,即:00反反 0000000 0 或或 0.000.000 0 00反反 1111111 1 或或 1.111.111 1第30页/共47页补码补码补补码码又又称称为为“对对2 2的的补补数数”。在在补补码码表表示示法法中中,正正数数的的补补码码表表示示同同原原码码和和反反码码的的表表示

42、示是是相相同同的的,而而负负数数的的补补码码表表示示却却不不同同。对对于于负负数数的的补补码码,其其符符号号位位为为1 1,而而数数值值位位是是将将原原码码“按位求反,末位加按位求反,末位加1 1”。例:例:N1 10011 N2 01010 N1补 010011 N2补 110110 根根据据上上述述补补码码形形成成规规则则,一一个个n n位位的的整整数数N N(包包含含一一位位符符号号位)的补码一般表示为:位)的补码一般表示为:N 0 N N 0 N 2 2n-1n-1NN补补补补 2 2n n N N 2 2n-1n-1 N N 0 0注意:同原码、反码的区注意:同原码、反码的区注意:同

43、原码、反码的区注意:同原码、反码的区分!分!分!分!!第31页/共47页补码补码 对于这样的对于这样的n n位整数其补码表示的数的范围为:位整数其补码表示的数的范围为:2n-1 (2n-1 1)。N 0 N N 0 N 1 1NN补补补补 2 2 N N 1 1 N N 0 01000n-1个个00111n-1个个1 对于定点小数,补码一般表示为:对于定点小数,补码一般表示为:对于这样的对于这样的m m位小数位小数(含一符号位含一符号位)其补码表示数的范围为:其补码表示数的范围为:1 (1 2-(m-1)第32页/共47页补码补码1.000m-1个个00.111m-1个个1总结:总结:正数正数

44、N N的补码的补码NN补补与原码与原码NN原原和反码和反码NN反反相同。相同。对于负数对于负数N N,其补码,其补码NN补补的的符号为的的符号为1 1,数值部分为反码数,数值部分为反码数值加值加1 1。在补码表示法中,在补码表示法中,0 0的表示形式是唯一的,即:的表示形式是唯一的,即:00补补 0000000 0 或或 0.000.000 0 00补补 0000000 0 或或 0.000.000 0注意:绝大多数机器数的表示采用补码表示法。象C语言中整数在计算机中就是以其补码的形式存储的。第33页/共47页原码反码补码+7000001110000011100000111-710000111

45、1111100011111001+0000000000000000000000000-0100000001111111100000000数的范围1111111101111111(-127+127)1000000001111111(-127+127)1000000001111111(-128+127)(用一字节表示数)(用一字节表示数)(用一字节表示数)(用一字节表示数)负数补码转换成十进制数:最高位不动,其余位取反加负数补码转换成十进制数:最高位不动,其余位取反加1 1例例例例 补码:补码:补码:补码:1 1 1 11111001111100111110011111001 取反:取反:取反:取

46、反:1 1 1 10000110000011000001100000110 加加加加1 1 1 1:1 1 1 10000111=-70000111=-70000111=-70000111=-7第34页/共47页补码的加、减运算补码的加、减运算由补码的定义可以证明如下补码加、减运算规则:由补码的定义可以证明如下补码加、减运算规则:N1 N2补 N1补 N2补 N1 N2补 N1补 N2补 运算时,符号位和数据位一样参加运算,如果符号位产运算时,符号位和数据位一样参加运算,如果符号位产运算时,符号位和数据位一样参加运算,如果符号位产运算时,符号位和数据位一样参加运算,如果符号位产生进位,则需要将

47、此进位生进位,则需要将此进位生进位,则需要将此进位生进位,则需要将此进位“丢掉丢掉丢掉丢掉”。运算结果的符号位为。运算结果的符号位为。运算结果的符号位为。运算结果的符号位为0 0 0 0时,说明是正数的补码;运算结果的符号为时,说明是正数的补码;运算结果的符号为时,说明是正数的补码;运算结果的符号为时,说明是正数的补码;运算结果的符号为1 1 1 1时,说明是负时,说明是负时,说明是负时,说明是负数的补码。数的补码。数的补码。数的补码。第35页/共47页补码的加、减运算补码的加、减运算 例例:已知已知N1N11001110011,N2N20101001010,求求N1N1N2N2补补和和N1N

48、1N2N2补补。解:解:N1N1N2N2补补 N1N1补补 N2N2补补 010011 010011 110110110110 =0 00100101001 0 1 0 0 1 1 0 1 0 0 1 1)1 1 0 1 1 0 1 1 0 1 1 0 丢掉丢掉1 1 0 0 1 0 0 1 0 0 1 0 0 1第36页/共47页补码的加、减运算补码的加、减运算 例例:已知已知N1N11001110011,N2N20101001010,求求N1N1N2N2补补和和N1N1N2N2补补。解:解:N1-N2N1-N2补补 N1N1补补 -N2-N2补补 010011 010011 0010100

49、01010 =0 01110111101 0 1 0 0 1 1 0 1 0 0 1 1)0 0 1 0 1 0 0 0 1 0 1 0 0 1 1 1 0 1 0 1 1 1 0 1第37页/共47页无符号整数无符号整数 在某些情况下,要处理的数全是正数,此时再保留符号在某些情况下,要处理的数全是正数,此时再保留符号位就没有意义了。我们可以把最高有效位也作为数值处理,位就没有意义了。我们可以把最高有效位也作为数值处理,这样的数称为这样的数称为无符号数无符号数。1616位无符号数的表示范围是:位无符号数的表示范围是:0 N 655350 N 65535,8 8位无符号数的表示范围是:位无符号数

50、的表示范围是:0 N 2550 N 255。字符表示法字符表示法 计算机中处理的信息并不全是数,有时需要处理字符或字符计算机中处理的信息并不全是数,有时需要处理字符或字符计算机中处理的信息并不全是数,有时需要处理字符或字符计算机中处理的信息并不全是数,有时需要处理字符或字符串,例如从键盘输入的信息或打印输出的信息都是字符方式输串,例如从键盘输入的信息或打印输出的信息都是字符方式输串,例如从键盘输入的信息或打印输出的信息都是字符方式输串,例如从键盘输入的信息或打印输出的信息都是字符方式输入输出的,因此,计算机必须能表示字符(例如,入输出的,因此,计算机必须能表示字符(例如,入输出的,因此,计算机

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > PPT文档

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com