




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、12/13/2021编辑课件1C C语言程序设计语言程序设计The C Programming Language华中科技大学计算机学院华中科技大学计算机学院曹计昌曹计昌12/13/2021编辑课件2第第0 0章章 C C语言程序设计课程安排语言程序设计课程安排一一.教材教材(Textbook)曹计昌曹计昌,卢萍卢萍,李开李开. C语言程序设计语言程序设计. 科学出版社科学出版社,2008.2 李开李开,卢萍卢萍,曹计昌曹计昌. C语言实验与课程设计语言实验与课程设计.科学出版科学出版社社,2011.3 二二. 参考书目参考书目(Reference Books)(1) Brian W. Kern
2、ighan,Dennis M. Ritchie. THE C PROGRAMMING LANGUAGE. 清华大学出版社清华大学出版社. PRENTICE HALL(注:该书已有中译本)(注:该书已有中译本)(2)曹化工)曹化工 秦友淑秦友淑. C语言程序设计典型题解析及自测试题语言程序设计典型题解析及自测试题. 西北工业大学出版社西北工业大学出版社(3)秦友淑)秦友淑 曹化工曹化工. C语言程序设计教程(第二版)语言程序设计教程(第二版). 华中科华中科技大学出版社技大学出版社,2002年年12月月12/13/2021编辑课件3三三.ISO.ISO的的C C语言标准和相关资料语言标准和相关资
3、料(ISO/IEC C (ISO/IEC C Standard and Other Materials)Standard and Other Materials)( (C C语言标准,网站等资料语言标准,网站等资料) )(1)最新标准:)最新标准:ISO/ IEC 9899: 1999 (E)ISO (the International Organization for Standardization) and IEC (the International Electrotechnical Commission)(2)C始于:始于:”The C Reference Manual” by Den
4、nis M. Ritchie, a version of which was published in The C Programming Language by Brian W. Kernighan and Dennis M. Ritchie, Prentice-Hall, Inc., (1978). Copyright owned by AT& T.(3)Dennis Ritchie Home Page “The Development of the C Language” ,by Dennis Ritchie ANSI C standard library Wikipedia;B
5、rian W_ Kernighan;n843,n897,n2794等等C语言方面的相关标准资料语言方面的相关标准资料,文档文档,网页和网站网页和网站12/13/2021编辑课件4三三. .本课程提供的其它资料本课程提供的其它资料(1) C语言程序设计课程课件语言程序设计课程课件ppt(2) C语言标准,网站等资料语言标准,网站等资料(前页已经介绍前页已经介绍)(3) C语言程序设计语言程序设计(中文版中文版)源程序源程序(4) C语言课程设计语言课程设计2010(09级)级)(5) 2010级级ACM班班C语言程序设计课程资料语言程序设计课程资料(6)汉字库汉字库-16乘乘16点阵点阵(7)
6、Turbo C 2.0 函数中文说明大全函数中文说明大全12/13/2021编辑课件520102010级级ACMACM班班C C语言程序设计课程资料语言程序设计课程资料(1) The C Programming Language-ppt(2) The C Programming Language,2nd text book(3) 3 The C Programming Language-source files(4) C程序设计语言英文版第程序设计语言英文版第2版课后习题与答案版课后习题与答案(5) C语言课程设计语言课程设计2011ACM班班(6) 教学日历教学日历-Syllabus of
7、The C Programming Language12/13/2021编辑课件6(4 4)关于)关于C C语言的圣经语言的圣经”一书的作者一书的作者n即:即:K&R C,即,即C创始人创始人 “The C Programming Language”,“C语语言的圣经言的圣经”一书的作者一书的作者nDennis M. Ritchie received Bachelors and advanced degrees from Harvard University, where as an undergraduate I concentrated in Physics and as a gr
8、aduate student in Applied Mathematics. The subject of my 1968 doctoral thesis was subrecursive hierarchies of functions.nBrian W. Kernighan is head of the Computing Structures Research Department, Bell Laboratories, Murray Hill, New Jersey. He received a B.A.Sc in engineering physics from the Univer
9、sity of Toronto in 1964, and a Ph.D. in electrical engineering from Princeton University in 1969. 12/13/2021编辑课件7学时安排学时安排, ,考核方式考核方式四四.学时安排学时安排(Arrangement of the houses)讲课:讲课:52+4学时学时 实验实验 24 hours五五.考核方式:考核方式:(Examination) 闭卷笔试闭卷笔试 评分:评分: 百分制百分制 其中其中:考试成绩考试成绩:50% 平时成绩平时成绩:50%(含实验)(含实验)(作业作业,实验所占比例
10、要与其他老师商量实验所占比例要与其他老师商量) .注注: 有有5分内容属教材中未讲内容分内容属教材中未讲内容,目的是鼓励自学目的是鼓励自学.12/13/2021编辑课件8六六. .学习方法学习方法 (Study methods)(Study methods)(1) (1) 课前要预习,课堂要专心,课后要复习课前要预习,课堂要专心,课后要复习(2) (2) 通过预习、听课、复习、以及作业和实验,确保消化课堂和教材的相通过预习、听课、复习、以及作业和实验,确保消化课堂和教材的相关内容。关内容。(3) (3) 要学会自己看书、理解,逐步减少对老师的依赖,培养良好的自学能要学会自己看书、理解,逐步减少
11、对老师的依赖,培养良好的自学能力。同时,由于学时紧张,假期的冲击,讲课速度会逐步加快到一力。同时,由于学时紧张,假期的冲击,讲课速度会逐步加快到一个合适的水平,以保证教学计划的完成,因此课前课后一定研读教个合适的水平,以保证教学计划的完成,因此课前课后一定研读教材。材。(4) (4) 认真、独立的完成作业。认真、独立的完成作业。(5) (5) 要重视实验。上机实验前要求预先编好有关程序,把上机的重点放到要重视实验。上机实验前要求预先编好有关程序,把上机的重点放到程序的编辑、修改、编译、链接、跟踪、调试程序方面来。放到观程序的编辑、修改、编译、链接、跟踪、调试程序方面来。放到观察程序运行过程中的
12、中间结果和运行完毕后的运行结果方面来。最察程序运行过程中的中间结果和运行完毕后的运行结果方面来。最终使自己的大脑变成一台终使自己的大脑变成一台“计算机计算机”,能够在脑袋中运行自己的程,能够在脑袋中运行自己的程序,判断各种情况下程序的走向等等。序,判断各种情况下程序的走向等等。 12/13/2021编辑课件9七定位问题七定位问题(Orientation)(Orientation)n培养的学生应该是将来能够与培养的学生应该是将来能够与MicroSoft的程序员,的程序员,软件大师们一争高下的人才,应该是有朝一日能够软件大师们一争高下的人才,应该是有朝一日能够根据实际应用需求,发明创造新型计算机程
13、序设计根据实际应用需求,发明创造新型计算机程序设计语言的人才。因此要高标准、严要求。不仅要掌握语言的人才。因此要高标准、严要求。不仅要掌握C的语法、语义,学好用好的语法、语义,学好用好C;而且要了解各种语;而且要了解各种语言成分产生、流传、延续、发展的深层次原因和需言成分产生、流传、延续、发展的深层次原因和需求背景。为学习后续课程,为将来能够熟练的用求背景。为学习后续课程,为将来能够熟练的用C写系统软件、底层软件、共享软件奠定坚实的语言写系统软件、底层软件、共享软件奠定坚实的语言基础。基础。12/13/2021编辑课件10八八. .建议和意见建议和意见欢迎就教学方法,讲课速度,教学欢迎就教学方
14、法,讲课速度,教学内容的深度和广度提出好的建议和内容的深度和广度提出好的建议和意见,以便把本门课程的教学组织意见,以便把本门课程的教学组织实施好。实施好。 12/13/2021编辑课件11C语言程序设计-第1章 概论nC C语言是目前全球流传最广、使用最多的程序设计语言是目前全球流传最广、使用最多的程序设计语言。本章介绍内容为语言。本章介绍内容为: :n学习学习C C语言程序设计的第一个例子。语言程序设计的第一个例子。nC C语言的产生与发展,语言的产生与发展,C C语言的语言特征,语言的语言特征,C C语言的标准。语言的标准。n计算机硬件系统的组成,数的编码表示以及数在内存中的计算机硬件系统
15、的组成,数的编码表示以及数在内存中的表现形式。表现形式。n算法的概念及其表示方法。算法的概念及其表示方法。n对对C C语言程序设计作了概略性的介绍。语言程序设计作了概略性的介绍。1.1.同时介绍了同时介绍了N N进制数进制数, ,数之间转换的方法,以及原码、补码、数之间转换的方法,以及原码、补码、反码及其相关运算。反码及其相关运算。12/13/2021编辑课件12C C语言的应用领域语言的应用领域1. 操作系统设计操作系统设计UNIX,LINUX,WINDOWS底层及驱动等底层及驱动等.2. 计算机网络与通信系统计算机网络与通信系统TCP/IP协议栈协议栈,路由软件路由软件,交换机软件等交换机
16、软件等.3. 系统软件系统软件各种各种DBMS,如如Oracle,Sybase,MS SQL Server等等;各种编译各种编译器软件器软件.4. 嵌入式系统嵌入式系统(民用民用)汽车汽车(40多个微处理器系统多个微处理器系统),手机手机,U盘驱动盘驱动,MP3等等;嵌入式操嵌入式操作系统作系统;智能卡系统等智能卡系统等.5. 国防国防,军工军工,航空航天航空航天,工业控制系统均以工业控制系统均以C作为软件开发的主流作为软件开发的主流语言语言.12/13/2021编辑课件131.1 学习学习C C语言程序设计的第一个例子语言程序设计的第一个例子 例例1.1 1.1 输入自己的名字的汉语拼音,输
17、入自己的名字的汉语拼音,要计算机问候自己并且输出这是自要计算机问候自己并且输出这是自己学习己学习C C语言的第一个程序的句子。语言的第一个程序的句子。12/13/2021编辑课件14例例1.11.1的程序的程序n#include stdio.hnvoid show(char str);nvoid main(void)nn char name20;n printf(Input your name please!n);n gets(name);n printf(Hello %s!n,name);n show(name);nnvoid show(char str)nn printf(This is
18、the first program for %s to learn C programming!n,str);n 12/13/2021编辑课件15操作例操作例1.11.1的程序的程序n进入编辑进入编辑按按F10F10功能键激活菜单功能键激活菜单用光标左右移动用光标左右移动键选键选File File 选选New New 然后回车进入编辑状态。然后回车进入编辑状态。n编辑编辑将上面的程序从键盘输入到计算机中完成源将上面的程序从键盘输入到计算机中完成源程序的编辑程序的编辑 F2 F2保存保存. .n编译链接编译链接: : 按按F10F10功能键激活菜单,功能键激活菜单, 选选Run Run 然然后回
19、车。此时源程序会被编译形成后回车。此时源程序会被编译形成.OBJ.OBJ文件、再通文件、再通过链接形成过链接形成.EXE.EXE文件,最后运行该文件,最后运行该.EXE.EXE文件。文件。n过程过程: .C: .C源文件源文件 .OBJ.OBJ文件文件 .EXE.EXE文件文件运行得运行得到结果到结果n观看结果观看结果: Alt-F5 : Alt-F5 12/13/2021编辑课件16例例1.11.1的程序的结果的程序的结果n人机交互与运行结果如下:人机交互与运行结果如下:Input your name please!Jichang Cao(此为输入信息)(此为输入信息)Hello Jicha
20、ng Cao!This is the first program for Jichang Cao to learn C programming! 12/13/2021编辑课件17n#include stdio.hnvoid show(char str);nvoid main(void)nn char name20;n printf(Input your name please!n);n gets(name);n printf(Hello %s!n,name);n show(name);nnvoid show(char str)nn printf(This is the first progra
21、m for %s to learn C programming!n,str);n 1.1.2 1.1.2 解释分析第一个解释分析第一个C C程序程序12/13/2021编辑课件181.2 C1.2 C语言的产生、发展与语言特征语言的产生、发展与语言特征1.2.1 C1.2.1 C语言的产生与发展语言的产生与发展 FORTRAN(1957年)年)ALGOL 60(1960年)年) 传统传统C或或K&R C(1978)CPL(1963年)年) ANSI C(1989,美国国家标准),美国国家标准)BCPL(1967年)年) 标准标准 C(ISO/IEC 9899:1990,俗称,俗称C90
22、)B(1969年年-1970年)年) 最新标准最新标准 C(ISO/IEC 9899:1999俗称俗称C99)C(1971年年-1973年)年)图图1.1 C语言的继承、产生与发展历程语言的继承、产生与发展历程12/13/2021编辑课件191.2.3 C1.2.3 C语言的语言特征语言的语言特征n语言简洁紧凑语言简洁紧凑n目标代码质量高目标代码质量高n语言表达能力强语言表达能力强 n流程控制结构化流程控制结构化 n弱类型弱类型 n“中级语言中级语言”特性特性 n书写自由、使用灵活书写自由、使用灵活 n可移植性好可移植性好 12/13/2021编辑课件201.3 1.3 计算机硬件系统计算机硬
23、件系统 n一台计算机硬件系统由一台计算机硬件系统由CPU、内存、外存、其他、内存、外存、其他I/O设备和总线组成。设备和总线组成。见图见图1.2 计算机硬件系统组成的示意图计算机硬件系统组成的示意图nCPU 又称为中央处理器又称为中央处理器 。 CPU又是由运算器、又是由运算器、控制器、指令计数器、内部寄存器、标志寄存器控制器、指令计数器、内部寄存器、标志寄存器等部件组成。等部件组成。 n内存又称为内存储器,用以存放程序和数据。内存又称为内存储器,用以存放程序和数据。n总线是用以连接计算机各个部件的线路,它完成总线是用以连接计算机各个部件的线路,它完成各个部件之间的信息传送。根据传送信号种类的
24、各个部件之间的信息传送。根据传送信号种类的不同,总线又分成地址总线、数据总线和控制总不同,总线又分成地址总线、数据总线和控制总线。线。 12/13/2021编辑课件21内存编址内存编址, ,内存容量内存容量, ,字长字长n内存以字节为单位线性连续编址。即按照内存以字节为单位线性连续编址。即按照0 x00000 x0000,0 x00010 x0001,0 x00020 x0002,的方式;从低地址端开始向的方式;从低地址端开始向高地址端为每一个内存字节进行顺序连续编号。高地址端为每一个内存字节进行顺序连续编号。n10241024个字节称为个字节称为1K1K字节,字节,1024K1024K字节称
25、为字节称为1M1M字节,字节,1024M1024M字节称为字节称为1G1G字节。字节。1024G1024G字节称为字节称为1T1T字节。字节。 nCPUCPU数据总线的宽度(数据总线的宽度(bitbit数)称为计算机的机器数)称为计算机的机器字长。对位,机器字长为字节;对字长。对位,机器字长为字节;对位,机器字长为字节;对位位,机器字长为字节;对位,机器字长为字节。,机器字长为字节。 12/13/2021编辑课件22外存和其他外存和其他I/OI/O设备设备 n外存指计算机的外存储器。常用的硬盘、软外存指计算机的外存储器。常用的硬盘、软盘、盘、U盘、光盘、以及磁盘阵列都属于外存。盘、光盘、以及磁
26、盘阵列都属于外存。外存存储的信息在断电之后仍然能够保存,外存存储的信息在断电之后仍然能够保存,这是外存的第一个特点。这是外存的第一个特点。 n其他其他I/O设备设备 :键盘键盘 ,显示器显示器 ,打印机打印机 ,绘图绘图仪仪 12/13/2021编辑课件231.4 1.4 数和字符的机器码表示数和字符的机器码表示 n1.4.1 进位计数制进位计数制n数量用于描述事物的多少。数目则是表示事数量用于描述事物的多少。数目则是表示事物的个数。而表示数目的符号则是数字,往物的个数。而表示数目的符号则是数字,往往简称为数。一个数在不同的进位制下具有往简称为数。一个数在不同的进位制下具有不同的表示,因而形成
27、数制的概念。数制是不同的表示,因而形成数制的概念。数制是关于记数的法则。根据进位基数的不同关于记数的法则。根据进位基数的不同,常用常用的有十进制、二进制、八进制、十六进制等。的有十进制、二进制、八进制、十六进制等。12/13/2021编辑课件241. 1. 二进制数及其运算二进制数及其运算n1)二进制数)二进制数n二进制数是由二进制数是由0和和1组成的数字串。对于一组成的数字串。对于一个二进制数来讲,它具有两个下面基本特点:个二进制数来讲,它具有两个下面基本特点:n(1) 只有只有0和和1两个不同的数字符号。两个不同的数字符号。n(2) 逢逢2进位进位1。12/13/2021编辑课件25二进制
28、数的权值二进制数的权值n对由进位计数制描述的数来讲,一个数字符号在该数的不同对由进位计数制描述的数来讲,一个数字符号在该数的不同的数位具有不同的权的数位具有不同的权(也称为权值或基值也称为权值或基值),因此所表现的值,因此所表现的值是不一样的。二进制数也是如此。二进制数中不同的数位所是不一样的。二进制数也是如此。二进制数中不同的数位所具有的权值见教材图具有的权值见教材图1.3. n二进制数整数二进制数整数(10110110)2的值是:的值是:(10110111)2=1 27+0 26+1 25+1 24+0 23+1 22+1 21+1 20=(183)10n而带二进制小数的二进制数而带二进制
29、小数的二进制数(1011.1101)2的值是:的值是:(1011.1101)2=1 23+0 22+1 21+1 20+1 2-1+1 2-2+0 2-3+1 2-4=(11.8125)1012/13/2021编辑课件262 2)二进制数的运算)二进制数的运算 n二进制加法规则有四条:二进制加法规则有四条:n 0+0=0 0+1=1+0=1 n 1+1=0 向高位进位向高位进位1 n 1+1+1=1 向高位进位向高位进位1n二进制减法规则也有四条:二进制减法规则也有四条:n 0-0=0 1-1=0 n 1-0=1 0-1=1 向高位借位向高位借位1 12/13/2021编辑课件27二进制加法举
30、例二进制加法举例n例例1.2 二进制加法举例,求二进制加法举例,求(10110111)2+(01011011)2的和。的和。1 0 1 1 0 1 1 1+ 0 1 0 1 1 0 1 1进位进位 1 1 1 1 1 1 1 1 0 0 0 1 0 0 1 0n所以,所以,(10110111)2+(01011011)2=(100010010)212/13/2021编辑课件28二进制减法举例二进制减法举例n例例1.3 二进制减法举例,求二进制减法举例,求(10110111)2-(01011011)2的差。的差。借位借位 1 0 1 1 0 0 01 0 1 1 0 1 1 1- 0 1 0 1
31、1 0 1 1n 0 1 0 1 1 1 0 0n所以,所以,(10110111)2-(01011011)2=(01011100)212/13/2021编辑课件292. 2. 八进制数及其运算八进制数及其运算n八进制数是由八进制数是由0到到7组成的数字串。八进制组成的数字串。八进制数具有如下两个基本特点:数具有如下两个基本特点:n(1) 只有只有0,1,2,3,4,5,6,7八个不八个不同的数字符号。同的数字符号。n(2) 逢逢8进位进位1。n在在C语言中,通过加前导零的方式来表示一语言中,通过加前导零的方式来表示一个数是八进制数。如:个数是八进制数。如:0136表示的是八进表示的是八进制数制
32、数(136)8。 12/13/2021编辑课件303 3十六进制数及其运算十六进制数及其运算n将将4 4位二进制数组合成为十六进制数。与二进制、位二进制数组合成为十六进制数。与二进制、八进制数类似,十六进制数也有两个基本特点:八进制数类似,十六进制数也有两个基本特点:n(1 1)只有)只有0 0,1 1,2 2,3 3,4 4,5 5,6 6,7 7,8 8,9 9,A A,B B,C C,D D,E E,F F十六个不同的数字符号(十六个不同的数字符号(A A F F也可以采也可以采用小写英文字母用小写英文字母a a f f)。这十六个数字符号与二进)。这十六个数字符号与二进制、八进制、十进
33、制数之间的关系如表制、八进制、十进制数之间的关系如表1.21.2所示。所示。n(2 2)逢)逢1616进位进位1 1。n在在C C语言中,通过加前导语言中,通过加前导0 x0 x或前导或前导0X0X的方式来表示的方式来表示一个数是十六进制数。如:一个数是十六进制数。如:0 x2d5b0 x2d5b表示的是十六进表示的是十六进制数制数(2d5b)(2d5b)1616。0XABCD0XABCD也是合法的十六进制数。也是合法的十六进制数。 12/13/2021编辑课件31表表1.21.2十六进制的十六进制的1616个不同数字符号与十个不同数字符号与十进制、八进制、二进制数之间的关系进制、八进制、二进
34、制数之间的关系 12/13/2021编辑课件32十六进制加减法运算举例十六进制加减法运算举例n例例1.5 十六进制加减法运算举例,求十六进制加减法运算举例,求0XABCD与与(2d5b)16的和,以及的和,以及0XABCD与与(2d5b)16的差。的差。n解解 0XABCD+(2d5b)16=0XD928 0XABCD-(2d5b)16=0 x7E7212/13/2021编辑课件331.4.2 1.4.2 进位制数之间的转换进位制数之间的转换n1. 十进制整数转换为二进制整数十进制整数转换为二进制整数12/13/2021编辑课件34进位制数之间的转换进位制数之间的转换2. 2. 二进制整数转换
35、为十进制整数二进制整数转换为十进制整数n用按权展开的方式即可求得该数的十进制表示。用按权展开的方式即可求得该数的十进制表示。n例例1.7 1.7 二进制数二进制数(10111101)(10111101)2 2转换为十进制数。转换为十进制数。解解 (10111101)(10111101)2 2 =1=1 2 27 7+0+0 2 26 6+1+1 2 25 5+1+1 2 24 4+1+1 2 23 3+1+1 2 22 2+0+0 2 21 1+1+1 2 20 0=128+32+16+8+4+1=(189)=128+32+16+8+4+1=(189)101012/13/2021编辑课件35进
36、位制数之间的转换进位制数之间的转换3. 二进制整数转换为八进制整数二进制整数转换为八进制整数n二进制数转换为八进制数可以采用二进制数转换为八进制数可以采用3位分组法。从位分组法。从整数部分的最低位起,每整数部分的最低位起,每3位分成位分成1组,高位部分不组,高位部分不足足3位则通过加前导位则通过加前导0的方式补足的方式补足3位,然后把每位,然后把每3位二进制数用对应的八进制数来表示即可。位二进制数用对应的八进制数来表示即可。n例例1.8 将二进制整数将二进制整数(10111101)2转换为八进制转换为八进制整数。整数。解解 (10111101)2=(010 111 101)2= (275)81
37、2/13/2021编辑课件36进位制数之间的转换进位制数之间的转换4. 八进制整数转换为二进制整数八进制整数转换为二进制整数n八进制整数转换为二进制整数只需要将每一八进制整数转换为二进制整数只需要将每一位八进制数用对应的二进制数表示即可。位八进制数用对应的二进制数表示即可。n例例1.9 将八进制数将八进制数(377377)8转换为二进转换为二进制数。制数。解解 (177777)8=(001 111 111 111 111 111)2=(1111111111111111)212/13/2021编辑课件37进位制数之间的转换进位制数之间的转换5. 5. 二进制整数转换为十六进制整数二进制整数转换为
38、十六进制整数n将二进制整数转换为十六进制整数采用将二进制整数转换为十六进制整数采用4 4位分组位分组法。法。4 4位二进制数的不同取值可以一一对应的完位二进制数的不同取值可以一一对应的完整描述十六进制中的整描述十六进制中的0 0 9 9和和A A F F。n方法方法: : 从整数部分的最低位起,每从整数部分的最低位起,每4 4位分成位分成1 1组,组,高位部分不足高位部分不足4 4位则通过加前导位则通过加前导0 0的方式补足的方式补足4 4位,位,然后把每然后把每4 4位二进制数用对应的十六进制数来表位二进制数用对应的十六进制数来表示。示。n例例1.10 1.10 将二进制数将二进制数(101
39、11101)(10111101)2 2转换为十六进转换为十六进制数。制数。解解 (10111101)(10111101)2 2=(1011 1101)=(1011 1101)2 2=(BD)=(BD)161612/13/2021编辑课件38进位制数之间的转换进位制数之间的转换6. 6. 十六进制整数转换为二进制整数十六进制整数转换为二进制整数n十六进制数转换为二进制数只需要将每一位十六进制数转换为二进制数只需要将每一位十六进制数用对应的十六进制数用对应的4位二进制数表示即可。位二进制数表示即可。n例例1.11 将十六进制数将十六进制数(ABCD)2转换为二进转换为二进制数。制数。解解 (ABC
40、D)2=(1010 1011 1100 1101)2=(1010101111001101)212/13/2021编辑课件391.4.3 1.4.3 数的机器码表示数的机器码表示1. 机器数与真值机器数与真值n机器数机器数: 在计算机中,将一个数的最高位在计算机中,将一个数的最高位定义为符号位,其余各位为数值位。并且定义为符号位,其余各位为数值位。并且规定符号位之值为规定符号位之值为0表示正,符号位之值表示正,符号位之值为为1表示负。用这种方法表示的数称为机表示负。用这种方法表示的数称为机器数。器数。n真值真值: 机器数的数值称为该机器数的真值。机器数的数值称为该机器数的真值。也就是正、负号后跟
41、二进制数的绝对值就也就是正、负号后跟二进制数的绝对值就构成真值。构成真值。 12/13/2021编辑课件402. 2. 原码原码定义定义: 对于一个二进制数对于一个二进制数X,如果规定用最,如果规定用最高位为符号位,其余各位为该数的绝对值。高位为符号位,其余各位为该数的绝对值。并且规定符号位之值为并且规定符号位之值为0表示正,符号位之表示正,符号位之值为值为1表示负,则采用这种方式形成的二进表示负,则采用这种方式形成的二进制编码称为称为该二进制数制编码称为称为该二进制数X的原码。的原码。12/13/2021编辑课件41求十进制数的原码表示求十进制数的原码表示n例例1.12 求十进制数求十进制数
42、125和和-125的的8位、位、16位原位原码表示。码表示。解解 先求十进制数先求十进制数125和和-125的二进制表示:的二进制表示:(125)10=0X7D=(+1111101)2, 而而 (-125)10=-0X7D=(-1111101)2;根据定义:根据定义:+1111101原原=01111101 (8位)位)+1111101原原=0000000001111101(16位)位)而而: -1111101原原=11111101 (8位)位)-1111101原原=1000000001111101 (16位)位)12/13/2021编辑课件42真值真值0 0的原码表示不惟一的原码表示不惟一n值
43、得注意的是,根据定义,真值值得注意的是,根据定义,真值0的原码表的原码表示不惟一,有示不惟一,有+0和和-0之分。之分。 n+0原原=00000000 (8位)位)n-0原原=10000000 (8位)位)12/13/2021编辑课件433. 3. 补码补码n补码的定义是正数的补码等于正数的原码,负数的补码为补码的定义是正数的补码等于正数的原码,负数的补码为其原码除符号位不动,其余各位变反再加其原码除符号位不动,其余各位变反再加1所得。所得。n例例1.13 分别求十进制数分别求十进制数35和和-1在在8位机和位机和16位机中的补位机中的补码表示。码表示。解解 设设x1=35,x2=-1;在在8
44、位机中,位机中,x10,x1 补补=x1 原原 =00100011;x20,x2原原 =10000001, x2 补补 =11111110+1=11111111;n在例在例1.13中,如果令中,如果令x1和和x2都为零,则容易算出它们的补都为零,则容易算出它们的补码都是零。也就是说,对于真值码都是零。也就是说,对于真值0,其补码是惟一的。即:,其补码是惟一的。即:+0补补=-0补补=000000最右边式子中最右边式子中0的个数等于机器的字长数。的个数等于机器的字长数。 12/13/2021编辑课件444. 4. 反码反码n在计算机中,有时还会用到数的反码。对正数而在计算机中,有时还会用到数的反
45、码。对正数而言,其反码与原码、补码的表示相同;对负数而言,其反码与原码、补码的表示相同;对负数而言,反码符号位的定义与原码、补码相同,但需言,反码符号位的定义与原码、补码相同,但需要将对应原码的数值位按位变反。要将对应原码的数值位按位变反。n例例1.15 分别求十进制数分别求十进制数6和和-1在在8位机中的反码位机中的反码表示。表示。解解 6反反=00000110;-1反反=对对10000001的的数值位按位变反数值位按位变反=1111111012/13/2021编辑课件455 5码的内存存储形式码的内存存储形式n码是指计算机内存中存储的数据。根据存储数据的性质,码是指计算机内存中存储的数据。
46、根据存储数据的性质,码可以分为数值码、字符码和图象码。码可以分为数值码、字符码和图象码。n数值码用于表示数的大小,常见的有整数和浮点数。数值码用于表示数的大小,常见的有整数和浮点数。n字符码用于表示英文字母、标点符号、控制字符以及汉字字符码用于表示英文字母、标点符号、控制字符以及汉字和其它文字的编码。和其它文字的编码。n图象码是用于表示图象中象素的颜色或灰度。虽然它们都图象码是用于表示图象中象素的颜色或灰度。虽然它们都是以二进制码的表现形式存储在内存之中,但物理意义却是以二进制码的表现形式存储在内存之中,但物理意义却各不相同。各不相同。nC语言的基本处理对象是字符和数字。在语言的基本处理对象是
47、字符和数字。在16位计算机中,位计算机中,整型数占整型数占2个字节,在个字节,在32位计算机中,整型数占位计算机中,整型数占4个字节。个字节。 12/13/2021编辑课件461.4.4 1.4.4 字符的编码表示字符的编码表示n1字符的编码的概念字符的编码的概念n计算机在屏幕上能够输出英文、汉字,乃至各种各计算机在屏幕上能够输出英文、汉字,乃至各种各样的民族文字,其基础在于对字符进行编码以及构样的民族文字,其基础在于对字符进行编码以及构造相应的点阵字模。造相应的点阵字模。n用户的字符输入通过编码在内存中以二进制数码存用户的字符输入通过编码在内存中以二进制数码存储,机器内部对字符的处理实际上是
48、对字符编码的储,机器内部对字符的处理实际上是对字符编码的处理。处理。n输出的时候则是通过字符的编码去索引对应的点阵输出的时候则是通过字符的编码去索引对应的点阵字模到内存中,然后进一步通过内存中的点阵字模字模到内存中,然后进一步通过内存中的点阵字模去控制显象管,在屏幕的指定位置将字符显示出来。去控制显象管,在屏幕的指定位置将字符显示出来。12/13/2021编辑课件471.4.4 1.4.4 字符的编码表示字符的编码表示n解释教材解释教材:图图1.3 英文字符英文字符O和汉字字符中的点和汉字字符中的点阵字模示意图阵字模示意图n更正更正:大写字母大写字母O的二进制编码依次是:的二进制编码依次是:0
49、 x18,0 x24,0 x42, 0 x42, 0 x42, 0 x42, 0 x24, 0 x18。n中国的中国的“中中”字的二进制编码按照从上到下,从字的二进制编码按照从上到下,从左到右顺序依次进行二进制编码,共需要左到右顺序依次进行二进制编码,共需要32个字个字节。节。n更正更正:“中中”字前字前8个字节的二进制编码是:个字节的二进制编码是:0 x01,0 x80,0 x01,0 x80, 0 xff,0 xff,0 xc1,0 x83 12/13/2021编辑课件482 2ASCIIASCII码码n对于西文字符,其编码国际上采用的是对于西文字符,其编码国际上采用的是ASCII码码(A
50、merican Standard Code For Information Interchange),是美国国家信息交换标准字符码的英文缩是美国国家信息交换标准字符码的英文缩写。写。nASCII码采用单字节编码,并且规定字节的最高位留做校验码采用单字节编码,并且规定字节的最高位留做校验位,只有低位,只有低7位参与编码。位参与编码。nASCII码字符集中共有码字符集中共有128个字符的编码。其中个字符的编码。其中0 x00到到ox1f前前32个码和个码和0 x7f最后一个码作为控制码,如控制回车、最后一个码作为控制码,如控制回车、换行、振铃、空等等;从换行、振铃、空等等;从0 x20到到0 x7
51、e共共95个编码,它们用个编码,它们用来对数字字符来对数字字符0 9,大小写英文字母,大小写英文字母a z和和A Z,以及标点,以及标点符号。符号。n计算机的终端(键盘、显示器)只能输入和显示这计算机的终端(键盘、显示器)只能输入和显示这95个编码个编码对应的字符。同时,打印机也只能打印输出这对应的字符。同时,打印机也只能打印输出这95个编码对应个编码对应的字符。完整的的字符。完整的ASCII码字符集请参阅附录码字符集请参阅附录1。 12/13/2021编辑课件493 3汉字编码汉字编码 n根据标准规定和计算机的输入、存储和显示过程,根据标准规定和计算机的输入、存储和显示过程,汉字编码有许多方
52、式。常用的有国标码、区位码、汉字编码有许多方式。常用的有国标码、区位码、拼音码、五笔字型码和汉字的机内码。拼音码、五笔字型码和汉字的机内码。n拼音码和五笔字型码用于汉字的输入。国标码是拼音码和五笔字型码用于汉字的输入。国标码是我国于我国于1981年颁布的年颁布的通用汉字字符集通用汉字字符集(基本集基本集)及其交换码标准及其交换码标准规定的汉字字符编码方案,标规定的汉字字符编码方案,标准编号是准编号是GB2312 80总共收集了总共收集了7445个汉字、个汉字、字母、数字和符号。由于汉字属大字符集,单个字母、数字和符号。由于汉字属大字符集,单个字节不足以描述全部字符,因此汉字采用两字节字节不足以
53、描述全部字符,因此汉字采用两字节编码方案。编码方案。 12/13/2021编辑课件50汉字区位码和机内码汉字区位码和机内码n区位码是将区位码是将GB2312 80中的字符按其位置划分为中的字符按其位置划分为94个区,个区,每区每区94个字符的汉字编码方案。区位码是国标码的一种变个字符的汉字编码方案。区位码是国标码的一种变形码,两者之间的转换可由下面的式子描述:形码,两者之间的转换可由下面的式子描述:国标码(十六进制)国标码(十六进制)=区位码(十六进制)区位码(十六进制)+0 x2020n机内码是计算机存储和处理汉字时采用的汉字编码。为了机内码是计算机存储和处理汉字时采用的汉字编码。为了与基本
54、与基本ASCII相互区分,机内码一般采用将国标码两个字相互区分,机内码一般采用将国标码两个字节的每个字节的最高位置节的每个字节的最高位置“1”的方式形成。机内码与国标的方式形成。机内码与国标码之间的转换关系是:码之间的转换关系是:机内码(十六进制)机内码(十六进制)=国标码(十六进制)国标码(十六进制)+0 x8080n例如例如,中国的中国的“中中”字的机内码是字的机内码是0 xd0d6。因此它的国标。因此它的国标码是码是0 x5056,而它的区位码是,而它的区位码是0 x3036。 12/13/2021编辑课件511.5 1.5 算法及其表示算法及其表示n1.5.1 算法的定义算法的定义算法
55、是指为解决某个问题所采取的方法和步骤,并算法是指为解决某个问题所采取的方法和步骤,并且要具备下列性质。且要具备下列性质。(1) 有零个或多个执行算法所需要的数据作为输入。有零个或多个执行算法所需要的数据作为输入。(2) 有一个或多个经算法处理的数据作为输出。这种有一个或多个经算法处理的数据作为输出。这种数据也称为算法的执行结果。数据也称为算法的执行结果。(3) 应只包含有限个步骤,且执行算法所需的时间也应只包含有限个步骤,且执行算法所需的时间也是有限时间。算法的这种性质称为算法的有限性或是有限时间。算法的这种性质称为算法的有限性或有穷性。有穷性。(4) 算法每一步所规定的动作应该是唯一确定的,
56、没算法每一步所规定的动作应该是唯一确定的,没有二义的。算法的这种性质称为算法的确定性。有二义的。算法的这种性质称为算法的确定性。 12/13/2021编辑课件521.5.2 1.5.2 算法的表示算法的表示n选用一种合适的工具或方法来表达算法设计者的算法思想选用一种合适的工具或方法来表达算法设计者的算法思想称为算法的表示或算法的描述。称为算法的表示或算法的描述。n算法的表示方式多种多样,如自然语言方式,流程图方式、算法的表示方式多种多样,如自然语言方式,流程图方式、表格方式、伪码方式表格方式、伪码方式,等等。等等。n自然语言方式显然非常容易理解,但是在将算法转换为具自然语言方式显然非常容易理解
57、,但是在将算法转换为具体程序方面不够直观,它最适合表达算法的设计思想。体程序方面不够直观,它最适合表达算法的设计思想。n流程图方式则非常具体,易于将它描述的算法编写成具体流程图方式则非常具体,易于将它描述的算法编写成具体的程序,但是在程序规模变大的情况下,用流程图来完整的程序,但是在程序规模变大的情况下,用流程图来完整描述算法不仅多余,而且不太可能。因此,流程图方式尤描述算法不仅多余,而且不太可能。因此,流程图方式尤其适合初学者。本书重点介绍流程图方法。其适合初学者。本书重点介绍流程图方法。 12/13/2021编辑课件531. 1. 流程图的图符流程图的图符n流程图又称为框图。它是用它的图符
58、来表流程图又称为框图。它是用它的图符来表示算法的每一步骤以及这些步骤之间的相示算法的每一步骤以及这些步骤之间的相互联系。学习用流程图来表达自己的算法互联系。学习用流程图来表达自己的算法思想首先要从认识组成流程图的图符的功思想首先要从认识组成流程图的图符的功能入手。流程图图符及其功能由表能入手。流程图图符及其功能由表1.4描述。描述。 12/13/2021编辑课件5412/13/2021编辑课件552. 2. 用流程图描述算法用流程图描述算法n问题问题 输入输入10个整数,统计正数和负数的个整数,统计正数和负数的个数,计算正数和负数的累加和与平均值。个数,计算正数和负数的累加和与平均值。n算法设
59、计算法设计 用变量用变量x存储输入的整数,存储输入的整数,k表示表示输入的次数,输入的次数,positive表示正数的个数,表示正数的个数,negtive表示负数的个数,表示负数的个数,sum_pos和和sum_neg分别表示正数和负数的累加和,分别表示正数和负数的累加和,even_pos和和even_neg分别表示正数和负分别表示正数和负数的平均值。数的平均值。12/13/2021编辑课件56该问题算法的自然语言描述该问题算法的自然语言描述(1) (1) (1) (1) 定义变量定义变量x x,k k,positivepositive,negtivenegtive,sum_possum_po
60、s,sum_negsum_neg,even_poseven_pos和和even_negeven_neg。(2) positive(2) positive,negtive negtive ,sum_possum_pos和和sum_negsum_neg清零,清零,k k赋初值赋初值1 1。(3) (3) 判断判断k11k11吗?(或吗?(或k k 1010吗?)如果是,顺序往(吗?)如果是,顺序往(4 4)步执)步执行;否则转步骤(行;否则转步骤(1010)。)。(4) (4) 从键盘输入一个整数并且赋给变量从键盘输入一个整数并且赋给变量x x。(5) (5) 判断判断x x是否等于零?如果是,转步骤(是否等于零?如果
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 集中培训的收获与体会
- 多元化备考CFA试题及答案
- 英语 第四册(五年制高职)3教学实施建议 Unit3 AI in the Workplace
- 杀菌设备操作程序
- 特许金融分析师考试市场趋势分析题及答案
- 餐饮业网络安全规定
- 不容错过的2024年CFA试题及答案
- 高校师德教育培训
- 食药安全小知识
- 就餐人数限制政策
- 招标代理机构选取突发情况应急处理预案
- 伦理审查表(一式三份)
- HCCDP 云迁移认证理论题库
- DBT29-295-2021 600MPa级高强钢筋混凝土结构技术标准
- 手卫生知识培训PPT课件下载
- 1#主变投运方案
- (完整版)六宫格数独100题
- 摄影基础入门—摄影教学课件ppt课件(带内容)
- 苏教版五年级劳动与技术下册《7挂钩关注“星星的孩子”》集体备课教案
- 宿舍卫生检查评分表
- 幻想水浒传2怪物掉落
评论
0/150
提交评论