收藏 分销(赏)

C语言程序设计1-第1章.ppt

上传人:精*** 文档编号:1924893 上传时间:2024-05-11 格式:PPT 页数:74 大小:123.50KB
下载 相关 举报
C语言程序设计1-第1章.ppt_第1页
第1页 / 共74页
C语言程序设计1-第1章.ppt_第2页
第2页 / 共74页
C语言程序设计1-第1章.ppt_第3页
第3页 / 共74页
C语言程序设计1-第1章.ppt_第4页
第4页 / 共74页
C语言程序设计1-第1章.ppt_第5页
第5页 / 共74页
点击查看更多>>
资源描述

1、C C语言程序设计语言程序设计The C Programming Language华中科技大学计算机学院曹计昌5/10/20241.第第0 0章章 C C语言程序设计课程安排语言程序设计课程安排一一.教材教材(Textbook)曹计昌曹计昌,卢萍卢萍,李开李开.C语言程序设计语言程序设计.科学出版社科学出版社,2008.2李开李开,卢萍卢萍,曹计昌曹计昌.C语言实验与课程设计语言实验与课程设计.科学出版社科学出版社,2011.3二二.参考书目参考书目(ReferenceBooks)(1)BrianW.Kernighan,DennisM.Ritchie.THECPROGRAMMINGLANGUA

2、GE.清华大学出版社清华大学出版社.PRENTICEHALL(注:该书已有中译本)(注:该书已有中译本)(2)曹化工)曹化工秦友淑秦友淑.C语言程序设计典型题解析及自测试题语言程序设计典型题解析及自测试题.西北工业大学出版社西北工业大学出版社(3)秦友淑)秦友淑曹化工曹化工.C语言程序设计教程(第二版)语言程序设计教程(第二版).华中科华中科技大学出版社技大学出版社,2002年年12月月5/10/20242.三三.ISO的的C语言标准和相关资料语言标准和相关资料(ISO/IEC C Standard and Other Materials)(C C语言标准,网站等资料语言标准,网站等资料)(1

3、)最新标准:)最新标准:ISO/IEC9899:1999(E)ISO(theInternationalOrganizationforStandardization)andIEC(theInternationalElectrotechnicalCommission)(2)C始于:始于:”TheCReferenceManual”byDennisM.Ritchie,aversionofwhichwaspublishedinThe C Programming Language byBrianW.KernighanandDennisM.Ritchie,Prentice-Hall,Inc.,(1978).

4、CopyrightownedbyAT&T.(3)DennisRitchieHomePage“TheDevelopmentoftheCLanguage”,byDennisRitchieANSICstandardlibraryWikipedia;BrianW_Kernighan;n843,n897,n2794等等C语言方面的相关标准资料语言方面的相关标准资料,文档文档,网页和网站网页和网站5/10/20243.三三.本课程提供的其它资料本课程提供的其它资料(1)C语言程序设计课程课件语言程序设计课程课件ppt(2)C语言标准,网站等资料语言标准,网站等资料(前页已经介绍前页已经介绍)(3)C语言程

5、序设计语言程序设计(中文版中文版)源程序源程序(4)C语言课程设计语言课程设计2010(09级)级)(5)2010级级ACM班班C语言程序设计课程资料语言程序设计课程资料(6)汉字库汉字库-16乘乘16点阵点阵(7)TurboC2.0函数中文说明大全函数中文说明大全5/10/20244.20102010级级ACMACM班班C C语言程序设计课程资料语言程序设计课程资料(1)TheCProgrammingLanguage-ppt(2)TheCProgrammingLanguage,2ndtextbook(3)3TheCProgrammingLanguage-sourcefiles(4)C程序设计

6、语言英文版第程序设计语言英文版第2版课后习题与答案版课后习题与答案(5)C语言课程设计语言课程设计2011ACM班班(6)教学日历教学日历-SyllabusofTheCProgrammingLanguage5/10/20245.(4 4)关于)关于C C语言的圣经语言的圣经”一书的作者一书的作者n即:即:K&RC,即,即C创始人创始人“TheCProgrammingLanguage”,“C语言语言的圣经的圣经”一书的作者一书的作者nDennisM.RitchiereceivedBachelorsandadvanceddegreesfromHarvardUniversity,whereasanu

7、ndergraduateIconcentratedinPhysicsandasagraduatestudentinAppliedMathematics.Thesubjectofmy1968doctoralthesiswassubrecursivehierarchiesoffunctions.nBrianW.KernighanisheadoftheComputingStructuresResearchDepartment,BellLaboratories,MurrayHill,NewJersey.HereceivedaB.A.ScinengineeringphysicsfromtheUniver

8、sityofTorontoin1964,andaPh.D.inelectricalengineeringfromPrincetonUniversityin1969.5/10/20246.学时安排学时安排,考核方式考核方式四四.学时安排学时安排(Arrangementofthehouses)讲课:讲课:52+4学时学时实验实验24hours五五.考核方式:考核方式:(Examination)闭卷笔试闭卷笔试评分:评分:百分制百分制其中其中:考试成绩考试成绩:50%平时成绩平时成绩:50%(含实验)(含实验)(作业作业,实验所占比例要与其他老师商量实验所占比例要与其他老师商量).注注:有有5分内容

9、属教材中未讲内容分内容属教材中未讲内容,目的是鼓励自学目的是鼓励自学.5/10/20247.六六.学习方法学习方法(Study methods)(Study methods)(1)(1)课前要预习,课堂要专心,课后要复习课前要预习,课堂要专心,课后要复习(2)(2)通过预习、听课、复习、以及作业和实验,确保消化课堂和教材的相通过预习、听课、复习、以及作业和实验,确保消化课堂和教材的相关内容。关内容。(3)(3)要学会自己看书、理解,逐步减少对老师的依赖,培养良好的自学能要学会自己看书、理解,逐步减少对老师的依赖,培养良好的自学能力。同时,由于学时紧张,假期的冲击,讲课速度会逐步加快到一个力。同

10、时,由于学时紧张,假期的冲击,讲课速度会逐步加快到一个合适的水平,以保证教学计划的完成,因此课前课后一定研读教材。合适的水平,以保证教学计划的完成,因此课前课后一定研读教材。(4)(4)认真、独立的完成作业。认真、独立的完成作业。(5)(5)要重视实验。上机实验前要求预先编好有关程序,把上机的重点放到要重视实验。上机实验前要求预先编好有关程序,把上机的重点放到程序的编辑、修改、编译、链接、跟踪、调试程序方面来。放到观察程序的编辑、修改、编译、链接、跟踪、调试程序方面来。放到观察程序运行过程中的中间结果和运行完毕后的运行结果方面来。最终使程序运行过程中的中间结果和运行完毕后的运行结果方面来。最终

11、使自己的大脑变成一台自己的大脑变成一台“计算机计算机”,能够在脑袋中运行自己的程序,判,能够在脑袋中运行自己的程序,判断各种情况下程序的走向等等。断各种情况下程序的走向等等。5/10/20248.七定位问题七定位问题(Orientation)(Orientation)n培养的学生应该是将来能够与培养的学生应该是将来能够与MicroSoft的程序员,的程序员,软件大师们一争高下的人才,应该是有朝一日能够软件大师们一争高下的人才,应该是有朝一日能够根据实际应用需求,发明创造新型计算机程序设计根据实际应用需求,发明创造新型计算机程序设计语言的人才。因此要高标准、严要求。不仅要掌握语言的人才。因此要高

12、标准、严要求。不仅要掌握C的语法、语义,学好用好的语法、语义,学好用好C;而且要了解各种语言;而且要了解各种语言成分产生、流传、延续、发展的深层次原因和需求成分产生、流传、延续、发展的深层次原因和需求背景。为学习后续课程,为将来能够熟练的用背景。为学习后续课程,为将来能够熟练的用C写写系统软件、底层软件、共享软件奠定坚实的语言基系统软件、底层软件、共享软件奠定坚实的语言基础。础。5/10/20249.八八.建议和意见建议和意见欢迎就教学方法,讲课速度,教学欢迎就教学方法,讲课速度,教学内容的深度和广度提出好的建议和内容的深度和广度提出好的建议和意见,以便把本门课程的教学组织意见,以便把本门课程

13、的教学组织实施好。实施好。5/10/202410.C语言程序设计-第1章 概论nC C语言是目前全球流传最广、使用最多的程序设计语言是目前全球流传最广、使用最多的程序设计语言。本章介绍内容为语言。本章介绍内容为:1.1.学习学习C C语言程序设计的第一个例子。语言程序设计的第一个例子。2.2.C C语言的产生与发展,语言的产生与发展,C C语言的语言特征,语言的语言特征,C C语言的标准。语言的标准。3.3.计算机硬件系统的组成,数的编码表示以及数在内存中的计算机硬件系统的组成,数的编码表示以及数在内存中的表现形式。表现形式。4.4.算法的概念及其表示方法。算法的概念及其表示方法。5.5.对对

14、C C语言程序设计作了概略性的介绍。语言程序设计作了概略性的介绍。6.6.同时介绍了同时介绍了N N进制数进制数,数之间转换的方法,以及原码、补码、数之间转换的方法,以及原码、补码、反码及其相关运算。反码及其相关运算。5/10/202411.C C语言的应用领域语言的应用领域1.操作系统设计操作系统设计UNIX,LINUX,WINDOWS底层及驱动等底层及驱动等.2.计算机网络与通信系统计算机网络与通信系统TCP/IP协议栈协议栈,路由软件路由软件,交换机软件等交换机软件等.3.系统软件系统软件各种各种DBMS,如如Oracle,Sybase,MSSQLServer等等;各种编译各种编译器软件

15、器软件.4.嵌入式系统嵌入式系统(民用民用)汽车汽车(40多个微处理器系统多个微处理器系统),手机手机,U盘驱动盘驱动,MP3等等;嵌入式操嵌入式操作系统作系统;智能卡系统等智能卡系统等.5.国防国防,军工军工,航空航天航空航天,工业控制系统均以工业控制系统均以C作为软件开发的主流作为软件开发的主流语言语言.5/10/202412.1.1 学习学习C C语言程序设计的第一个例子语言程序设计的第一个例子 例例1.1 1.1 输入自己的名字的汉语拼音,输入自己的名字的汉语拼音,要计算机问候自己并且输出这是自要计算机问候自己并且输出这是自己学习己学习C C语言的第一个程序的句子。语言的第一个程序的句

16、子。5/10/202413.例例1.11.1的程序的程序1.#includestdio.h2.voidshow(charstr);3.voidmain(void)4.5.charname20;6.printf(Inputyournameplease!n);7.gets(name);8.printf(Hello%s!n,name);9.show(name);10.11.voidshow(charstr)12.13.printf(Thisisthefirstprogramfor%stolearnCprogramming!n,str);14.5/10/202414.操作例操作例1.11.1的程序的程

17、序n进入编辑进入编辑按按F10F10功能键激活菜单功能键激活菜单用光标左右移动用光标左右移动键选键选File File 选选New New 然后回车进入编辑状态。然后回车进入编辑状态。n编辑编辑将上面的程序从键盘输入到计算机中完成源将上面的程序从键盘输入到计算机中完成源程序的编辑程序的编辑 F2 F2保存保存.n编译链接编译链接:按按F10F10功能键激活菜单,功能键激活菜单,选选Run Run 然然后回车。此时源程序会被编译形成后回车。此时源程序会被编译形成.OBJ.OBJ文件、再通文件、再通过链接形成过链接形成.EXE.EXE文件,最后运行该文件,最后运行该.EXE.EXE文件。文件。n过

18、程过程:.C:.C源文件源文件 .OBJ.OBJ文件文件 .EXE.EXE文件文件运行得运行得到结果到结果n观看结果观看结果:Alt-F5:Alt-F5 5/10/202415.例例1.11.1的程序的结果的程序的结果n人机交互与运行结果如下:人机交互与运行结果如下:Inputyournameplease!JichangCao(此为输入信息)(此为输入信息)HelloJichangCao!ThisisthefirstprogramforJichangCaotolearnCprogramming!5/10/202416.1.#includestdio.h2.voidshow(charstr);3

19、.voidmain(void)4.5.charname20;6.printf(Inputyournameplease!n);7.gets(name);8.printf(Hello%s!n,name);9.show(name);10.11.voidshow(charstr)12.13.printf(Thisisthefirstprogramfor%stolearnCprogramming!n,str);14.1.1.2 1.1.2 解释分析第一个解释分析第一个C C程序程序5/10/202417.1.2 C1.2 C语言的产生、发展与语言特征语言的产生、发展与语言特征1.2.1 C1.2.1 C

20、语言的产生与发展语言的产生与发展 FORTRAN(1957年)年)ALGOL60(1960年)年)传统传统C或或K&RC(1978)CPL(1963年)年)ANSIC(1989,美国国家标准),美国国家标准)BCPL(1967年)年)标准标准C(ISO/IEC9899:1990,俗称,俗称C90)B(1969年年-1970年)年)最新标准最新标准C(ISO/IEC9899:1999俗称俗称C99)C(1971年年-1973年)年)图图1.1C语言的继承、产生与发展历程语言的继承、产生与发展历程5/10/202418.1.2.3 C1.2.3 C语言的语言特征语言的语言特征1)语言简洁紧凑语言简

21、洁紧凑2)目标代码质量高目标代码质量高3)语言表达能力强语言表达能力强4)流程控制结构化流程控制结构化5)弱类型弱类型6)“中级语言中级语言”特性特性7)书写自由、使用灵活书写自由、使用灵活8)可移植性好可移植性好5/10/202419.1.3 1.3 计算机硬件系统计算机硬件系统 n一台计算机硬件系统由一台计算机硬件系统由CPU、内存、外存、其他、内存、外存、其他I/O设备和总线组成。设备和总线组成。见图见图1.2计算机硬件系统组成的示意图计算机硬件系统组成的示意图nCPU又称为中央处理器又称为中央处理器。CPU又是由运算器、又是由运算器、控制器、指令计数器、内部寄存器、标志寄存器控制器、指

22、令计数器、内部寄存器、标志寄存器等部件组成。等部件组成。n内存又称为内存储器,用以存放程序和数据。内存又称为内存储器,用以存放程序和数据。n总线是用以连接计算机各个部件的线路,它完成总线是用以连接计算机各个部件的线路,它完成各个部件之间的信息传送。根据传送信号种类的各个部件之间的信息传送。根据传送信号种类的不同,总线又分成地址总线、数据总线和控制总不同,总线又分成地址总线、数据总线和控制总线。线。5/10/202420.内存编址内存编址,内存容量内存容量,字长字长n内存以字节为单位线性连续编址。即按照内存以字节为单位线性连续编址。即按照0 x00000 x0000,0 x00010 x0001

23、,0 x00020 x0002,的方式;从低地址端开始向高的方式;从低地址端开始向高地址端为每一个内存字节进行顺序连续编号。地址端为每一个内存字节进行顺序连续编号。n10241024个字节称为个字节称为1K1K字节,字节,1024K1024K字节称为字节称为1M1M字节,字节,1024M1024M字节称为字节称为1G1G字节。字节。1024G1024G字节称为字节称为1T1T字节。字节。nCPUCPU数据总线的宽度(数据总线的宽度(bitbit数)称为计算机的机器字数)称为计算机的机器字长。对位,机器字长为字节;对位长。对位,机器字长为字节;对位,机器字长为字节;对位,机,机器字长为字节;对位

24、,机器字长为字节。器字长为字节。5/10/202421.外存和其他外存和其他I/OI/O设备设备 n外存指计算机的外存储器。常用的硬盘、软外存指计算机的外存储器。常用的硬盘、软盘、盘、U盘、光盘、以及磁盘阵列都属于外存。盘、光盘、以及磁盘阵列都属于外存。外存存储的信息在断电之后仍然能够保存,外存存储的信息在断电之后仍然能够保存,这是外存的第一个特点。这是外存的第一个特点。n其他其他I/O设备设备:键盘键盘,显示器显示器,打印机打印机,绘图绘图仪仪5/10/202422.1.4 1.4 数和字符的机器码表示数和字符的机器码表示 n1.4.1进位计数制进位计数制n数量用于描述事物的多少。数目则是表

25、示事数量用于描述事物的多少。数目则是表示事物的个数。而表示数目的符号则是数字,往物的个数。而表示数目的符号则是数字,往往简称为数。一个数在不同的进位制下具有往简称为数。一个数在不同的进位制下具有不同的表示,因而形成数制的概念。数制是不同的表示,因而形成数制的概念。数制是关于记数的法则。根据进位基数的不同关于记数的法则。根据进位基数的不同,常用常用的有十进制、二进制、八进制、十六进制等。的有十进制、二进制、八进制、十六进制等。5/10/202423.1.1.二进制数及其运算二进制数及其运算n1)二进制数)二进制数n二进制数是由二进制数是由0和和1组成的数字串。对于一个组成的数字串。对于一个二进制

26、数来讲,它具有两个下面基本特点:二进制数来讲,它具有两个下面基本特点:n(1)只有只有0和和1两个不同的数字符号。两个不同的数字符号。n(2)逢逢2进位进位1。5/10/202424.二进制数的权值二进制数的权值n对由进位计数制描述的数来讲,一个数字符号在该数的不同对由进位计数制描述的数来讲,一个数字符号在该数的不同的数位具有不同的权的数位具有不同的权(也称为权值或基值也称为权值或基值),因此所表现的值,因此所表现的值是不一样的。二进制数也是如此。二进制数中不同的数位所是不一样的。二进制数也是如此。二进制数中不同的数位所具有的权值见教材图具有的权值见教材图1.3.n二进制数整数二进制数整数(1

27、0110110)2的值是:的值是:(10110111)2=1 27+0 26+1 25+1 24+0 23+1 22+1 21+1 20=(183)10n而带二进制小数的二进制数而带二进制小数的二进制数(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)105/10/202425.2 2)二进制数的运算)二进制数的运算 n二进制加法规则有四条:二进制加法规则有四条:n0+0=00+1=1+0=1n1+1=0向高位进位向高位进位1n1+1+1=1向高位进位向高位进位1n二进制减

28、法规则也有四条:二进制减法规则也有四条:n0-0=01-1=0n1-0=10-1=1向高位借位向高位借位15/10/202426.二进制加法举例二进制加法举例n例例1.2二进制加法举例,求二进制加法举例,求(10110111)2+(01011011)2的和。的和。10110111+01011011进位进位1111111100010010n所以,所以,(10110111)2+(01011011)2=(100010010)25/10/202427.二进制减法举例二进制减法举例n例例1.3二进制减法举例,求二进制减法举例,求(10110111)2-(01011011)2的差。的差。借位借位10110

29、0010110111-01011011n01011100n所以,所以,(10110111)2-(01011011)2=(01011100)25/10/202428.2.2.八进制数及其运算八进制数及其运算n八进制数是由八进制数是由0到到7组成的数字串。八进制数组成的数字串。八进制数具有如下两个基本特点:具有如下两个基本特点:n(1)只有只有0,1,2,3,4,5,6,7八个不八个不同的数字符号。同的数字符号。n(2)逢逢8进位进位1。n在在C语言中,通过加前导零的方式来表示一语言中,通过加前导零的方式来表示一个数是八进制数。如:个数是八进制数。如:0136表示的是八进表示的是八进制数制数(13

30、6)8。5/10/202429.3 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)。这十六个数字符号与二)。这十六个数字符号与二进制、八进制、十进制数之间的关系如表进

31、制、八进制、十进制数之间的关系如表1.21.2所示。所示。n(2 2)逢)逢1616进位进位1 1。n在在C C语言中,通过加前导语言中,通过加前导0 x0 x或前导或前导0X0X的方式来表示的方式来表示一个数是十六进制数。如:一个数是十六进制数。如:0 x2d5b0 x2d5b表示的是十六进表示的是十六进制数制数(2d5b)(2d5b)1616。0XABCD0XABCD也是合法的十六进制数。也是合法的十六进制数。5/10/202430.表表1.21.2十六进制的十六进制的1616个不同数字符号与十个不同数字符号与十进制、八进制、二进制数之间的关系进制、八进制、二进制数之间的关系 5/10/2

32、02431.十六进制加减法运算举例十六进制加减法运算举例n例例1.5十六进制加减法运算举例,求十六进制加减法运算举例,求0XABCD与与(2d5b)16的和,以及的和,以及0XABCD与与(2d5b)16的差。的差。n解解0XABCD+(2d5b)16=0XD9280XABCD-(2d5b)16=0 x7E725/10/202432.1.4.2 1.4.2 进位制数之间的转换进位制数之间的转换n1.十进制整数转换为二进制整数十进制整数转换为二进制整数5/10/202433.进位制数之间的转换进位制数之间的转换2.2.二进制整数转换为十进制整数二进制整数转换为十进制整数n用按权展开的方式即可求得

33、该数的十进制表示。用按权展开的方式即可求得该数的十进制表示。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)10105/10/202434.进位制数之间的转换进位制数之间的转换3.二进制整数转换为八进制整数二进制整

34、数转换为八进制整数n二进制数转换为八进制数可以采用二进制数转换为八进制数可以采用3位分组法。从位分组法。从整数部分的最低位起,每整数部分的最低位起,每3位分成位分成1组,高位部分不组,高位部分不足足3位则通过加前导位则通过加前导0的方式补足的方式补足3位,然后把每位,然后把每3位二进制数用对应的八进制数来表示即可。位二进制数用对应的八进制数来表示即可。n例例1.8将二进制整数将二进制整数(10111101)2转换为八进制转换为八进制整数。整数。解解(10111101)2=(010111101)2=(275)85/10/202435.进位制数之间的转换进位制数之间的转换4.八进制整数转换为二进制

35、整数八进制整数转换为二进制整数n八进制整数转换为二进制整数只需要将每一八进制整数转换为二进制整数只需要将每一位八进制数用对应的二进制数表示即可。位八进制数用对应的二进制数表示即可。n例例1.9将八进制数将八进制数(377377)8转换为二进转换为二进制数。制数。解解(177777)8=(001111111111111111)2=(1111111111111111)25/10/202436.进位制数之间的转换进位制数之间的转换5.5.二进制整数转换为十六进制整数二进制整数转换为十六进制整数n将二进制整数转换为十六进制整数采用将二进制整数转换为十六进制整数采用4 4位分组位分组法。法。4 4位二进

36、制数的不同取值可以一一对应的完位二进制数的不同取值可以一一对应的完整描述十六进制中的整描述十六进制中的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 将二进制数将二进制数(10111101)(10111101)2 2转换为十六进制转换为十六进制数。数。解解 (10111101)(10111101)2 2

37、=(1011 1101)=(1011 1101)2 2=(BD)=(BD)16165/10/202437.进位制数之间的转换进位制数之间的转换6.6.十六进制整数转换为二进制整数十六进制整数转换为二进制整数n十六进制数转换为二进制数只需要将每一位十六进制数转换为二进制数只需要将每一位十六进制数用对应的十六进制数用对应的4位二进制数表示即可。位二进制数表示即可。n例例1.11将十六进制数将十六进制数(ABCD)2转换为二进转换为二进制数。制数。解解(ABCD)2=(1010101111001101)2=(1010101111001101)25/10/202438.1.4.3 1.4.3 数的机器

38、码表示数的机器码表示1.机器数与真值机器数与真值n机器数机器数:在计算机中,将一个数的最高位在计算机中,将一个数的最高位定义为符号位,其余各位为数值位。并且定义为符号位,其余各位为数值位。并且规定符号位之值为规定符号位之值为0表示正,符号位之值表示正,符号位之值为为1表示负。用这种方法表示的数称为机表示负。用这种方法表示的数称为机器数。器数。n真值真值:机器数的数值称为该机器数的真值。机器数的数值称为该机器数的真值。也就是正、负号后跟二进制数的绝对值就也就是正、负号后跟二进制数的绝对值就构成真值。构成真值。5/10/202439.2.2.原码原码定义定义:对于一个二进制数对于一个二进制数X,如

39、果规定用最,如果规定用最高位为符号位,其余各位为该数的绝对值。高位为符号位,其余各位为该数的绝对值。并且规定符号位之值为并且规定符号位之值为0表示正,符号位之表示正,符号位之值为值为1表示负,则采用这种方式形成的二进表示负,则采用这种方式形成的二进制编码称为称为该二进制数制编码称为称为该二进制数X的原码。的原码。5/10/202440.求十进制数的原码表示求十进制数的原码表示n例例1.12求十进制数求十进制数125和和-125的的8位、位、16位原码位原码表示。表示。解解先求十进制数先求十进制数125和和-125的二进制表示:的二进制表示:(125)10=0X7D=(+1111101)2,而而

40、(-125)10=-0X7D=(-1111101)2;根据定义:根据定义:+1111101原原=01111101(8位)位)+1111101原原=0000000001111101(16位)位)而而:-1111101原原=11111101(8位)位)-1111101原原=1000000001111101(16位)位)5/10/202441.真值真值0 0的原码表示不惟一的原码表示不惟一n值得注意的是,根据定义,真值值得注意的是,根据定义,真值0的原码表的原码表示不惟一,有示不惟一,有+0和和-0之分。之分。n+0原原=00000000(8位)位)n-0原原=10000000(8位)位)5/10/

41、202442.3.3.补码补码n补码的定义是正数的补码等于正数的原码,负数的补码为补码的定义是正数的补码等于正数的原码,负数的补码为其原码除符号位不动,其余各位变反再加其原码除符号位不动,其余各位变反再加1所得。所得。n例例1.13分别求十进制数分别求十进制数35和和-1在在8位机和位机和16位机中的补位机中的补码表示。码表示。解解设设x1=35,x2=-1;在在8位机中,位机中,x10,x1补补=x1原原=00100011;x20,x2原原=10000001,x2补补=11111110+1=11111111;n在例在例1.13中,如果令中,如果令x1和和x2都为零,则容易算出它们的补都为零,

42、则容易算出它们的补码都是零。也就是说,对于真值码都是零。也就是说,对于真值0,其补码是惟一的。即:,其补码是惟一的。即:+0补补=-0补补=000000最右边式子中最右边式子中0的个数等于机器的字长数。的个数等于机器的字长数。5/10/202443.4.4.反码反码n在计算机中,有时还会用到数的反码。对正数而在计算机中,有时还会用到数的反码。对正数而言,其反码与原码、补码的表示相同;对负数而言,其反码与原码、补码的表示相同;对负数而言,反码符号位的定义与原码、补码相同,但需言,反码符号位的定义与原码、补码相同,但需要将对应原码的数值位按位变反。要将对应原码的数值位按位变反。n例例1.15分别求

43、十进制数分别求十进制数6和和-1在在8位机中的反码位机中的反码表示。表示。解解6反反=00000110;-1反反=对对10000001的的数值位按位变反数值位按位变反=111111105/10/202444.5 5码的内存存储形式码的内存存储形式n码是指计算机内存中存储的数据。根据存储数据的性质,码是指计算机内存中存储的数据。根据存储数据的性质,码可以分为数值码、字符码和图象码。码可以分为数值码、字符码和图象码。n数值码用于表示数的大小,常见的有整数和浮点数。数值码用于表示数的大小,常见的有整数和浮点数。n字符码用于表示英文字母、标点符号、控制字符以及汉字字符码用于表示英文字母、标点符号、控制

44、字符以及汉字和其它文字的编码。和其它文字的编码。n图象码是用于表示图象中象素的颜色或灰度。虽然它们都图象码是用于表示图象中象素的颜色或灰度。虽然它们都是以二进制码的表现形式存储在内存之中,但物理意义却是以二进制码的表现形式存储在内存之中,但物理意义却各不相同。各不相同。nC语言的基本处理对象是字符和数字。在语言的基本处理对象是字符和数字。在16位计算机中,位计算机中,整型数占整型数占2个字节,在个字节,在32位计算机中,整型数占位计算机中,整型数占4个字节。个字节。5/10/202445.1.4.4 1.4.4 字符的编码表示字符的编码表示n1字符的编码的概念字符的编码的概念n计算机在屏幕上能

45、够输出英文、汉字,乃至各种各样计算机在屏幕上能够输出英文、汉字,乃至各种各样的民族文字,其基础在于对字符进行编码以及构造相的民族文字,其基础在于对字符进行编码以及构造相应的点阵字模。应的点阵字模。n用户的字符输入通过编码在内存中以二进制数码存储,用户的字符输入通过编码在内存中以二进制数码存储,机器内部对字符的处理实际上是对字符编码的处理。机器内部对字符的处理实际上是对字符编码的处理。n输出的时候则是通过字符的编码去索引对应的点阵字输出的时候则是通过字符的编码去索引对应的点阵字模到内存中,然后进一步通过内存中的点阵字模去控模到内存中,然后进一步通过内存中的点阵字模去控制显象管,在屏幕的指定位置将

46、字符显示出来。制显象管,在屏幕的指定位置将字符显示出来。5/10/202446.1.4.4 1.4.4 字符的编码表示字符的编码表示n解释教材解释教材:图图1.3英文字符英文字符O和汉字字符中的点阵和汉字字符中的点阵字模示意图字模示意图n更正更正:大写字母大写字母O的二进制编码依次是:的二进制编码依次是:0 x18,0 x24,0 x42,0 x42,0 x42,0 x42,0 x24,0 x18。n中国的中国的“中中”字的二进制编码按照从上到下,从左字的二进制编码按照从上到下,从左到右顺序依次进行二进制编码,共需要到右顺序依次进行二进制编码,共需要32个字节。个字节。n更正更正:“中中”字前

47、字前8个字节的二进制编码是:个字节的二进制编码是:0 x01,0 x80,0 x01,0 x80,0 xff,0 xff,0 xc1,0 x835/10/202447.2 2ASCIIASCII码码n对于西文字符,其编码国际上采用的是对于西文字符,其编码国际上采用的是ASCII码码(AmericanStandardCodeForInformationInterchange),是美国国家信息交换标准字符码的英文缩是美国国家信息交换标准字符码的英文缩写。写。nASCII码采用单字节编码,并且规定字节的最高位留做校验码采用单字节编码,并且规定字节的最高位留做校验位,只有低位,只有低7位参与编码。位参

48、与编码。nASCII码字符集中共有码字符集中共有128个字符的编码。其中个字符的编码。其中0 x00到到ox1f前前32个码和个码和0 x7f最后一个码作为控制码,如控制回车、最后一个码作为控制码,如控制回车、换行、振铃、空等等;从换行、振铃、空等等;从0 x20到到0 x7e共共95个编码,它们用个编码,它们用来对数字字符来对数字字符0 9,大小写英文字母,大小写英文字母a z和和A Z,以及标点符,以及标点符号。号。n计算机的终端(键盘、显示器)只能输入和显示这计算机的终端(键盘、显示器)只能输入和显示这95个编码个编码对应的字符。同时,打印机也只能打印输出这对应的字符。同时,打印机也只能

49、打印输出这95个编码对应个编码对应的字符。完整的的字符。完整的ASCII码字符集请参阅附录码字符集请参阅附录1。5/10/202448.3 3汉字编码汉字编码 n根据标准规定和计算机的输入、存储和显示过程,根据标准规定和计算机的输入、存储和显示过程,汉字编码有许多方式。常用的有国标码、区位码、汉字编码有许多方式。常用的有国标码、区位码、拼音码、五笔字型码和汉字的机内码。拼音码、五笔字型码和汉字的机内码。n拼音码和五笔字型码用于汉字的输入。国标码是我拼音码和五笔字型码用于汉字的输入。国标码是我国于国于1981年颁布的通用汉字字符集年颁布的通用汉字字符集(基本集基本集)及及其交换码标准规定的汉字字

50、符编码方案,标准编其交换码标准规定的汉字字符编码方案,标准编号是号是GB2312 80总共收集了总共收集了7445个汉字、字母、个汉字、字母、数字和符号。由于汉字属大字符集,单个字节不足数字和符号。由于汉字属大字符集,单个字节不足以描述全部字符,因此汉字采用两字节编码方案。以描述全部字符,因此汉字采用两字节编码方案。5/10/202449.汉字区位码和机内码汉字区位码和机内码n区位码是将区位码是将GB2312 80中的字符按其位置划分为中的字符按其位置划分为94个区,个区,每区每区94个字符的汉字编码方案。区位码是国标码的一种变个字符的汉字编码方案。区位码是国标码的一种变形码,两者之间的转换可

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服