《C语言程序设计ppt课件-第1章.ppt》由会员分享,可在线阅读,更多相关《C语言程序设计ppt课件-第1章.ppt(74页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、2022-7-28华中科技大学计算机学院1C C语言程序设计语言程序设计The C Programming Language华中科技大学计算机学院华中科技大学计算机学院曹计昌曹计昌2022-7-28华中科技大学计算机学院2第第0 0章章 C C语言程序设计课程安排语言程序设计课程安排一一.教材教材(Textbook)曹计昌曹计昌,卢萍卢萍,李开李开. C语言程序设计语言程序设计. 科学出版社科学出版社,2008.2 李开李开,卢萍卢萍,曹计昌曹计昌. C语言实验与课程设计语言实验与课程设计.科学出版科学出版社社,2011.3 二二. 参考书目参考书目(Reference Books)(1) B
2、rian W. Kernighan,Dennis M. Ritchie. THE C PROGRAMMING LANGUAGE. 清华大学出版社清华大学出版社. PRENTICE HALL(注:该书已有中译本)(注:该书已有中译本)(2)曹化工)曹化工 秦友淑秦友淑. C语言程序设计典型题解析及自测试题语言程序设计典型题解析及自测试题. 西北工业大学出版社西北工业大学出版社(3)秦友淑)秦友淑 曹化工曹化工. C语言程序设计教程(第二版)语言程序设计教程(第二版). 华中科华中科技大学出版社技大学出版社,2002年年12月月2022-7-28华中科技大学计算机学院3三三.ISO.ISO的的C
3、C语言标准和相关资料语言标准和相关资料(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 Refere
4、nce Manual” by Dennis 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 libra
5、ry Wikipedia;Brian W_ Kernighan;n843,n897,n2794等等C语言方面的相关标准资料语言方面的相关标准资料,文档文档,网页和网站网页和网站2022-7-28华中科技大学计算机学院4三三. .本课程提供的其它资料本课程提供的其它资料(1) C语言程序设计课程课件语言程序设计课程课件ppt(2) C语言标准,网站等资料语言标准,网站等资料(前页已经介绍前页已经介绍)(3) C语言程序设计语言程序设计(中文版中文版)源程序源程序(4) C语言课程设计语言课程设计2010(09级)级)(5) 2010级级ACM班班C语言程序设计课程资料语言程序设计课程资料(6)汉
6、字库汉字库-16乘乘16点阵点阵(7) Turbo C 2.0 函数中文说明大全函数中文说明大全2022-7-28华中科技大学计算机学院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班
7、班(6) 教学日历教学日历-Syllabus of The C Programming Language2022-7-28华中科技大学计算机学院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 concent
8、rated in Physics and as a graduate 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 enginee
9、ring physics from the University of Toronto in 1964, and a Ph.D. in electrical engineering from Princeton University in 1969. 2022-7-28华中科技大学计算机学院7学时安排学时安排, ,考核方式考核方式四四.学时安排学时安排(Arrangement of the houses)讲课:讲课:52+4学时学时 实验实验 24 hours五五.考核方式:考核方式:(Examination) 闭卷笔试闭卷笔试 评分:评分: 百分制百分制 其中其中:考试成绩考试成绩:50%
10、平时成绩平时成绩:50%(含实验)(含实验)(作业作业,实验所占比例要与其他老师商量实验所占比例要与其他老师商量) .注注: 有有5分内容属教材中未讲内容分内容属教材中未讲内容,目的是鼓励自学目的是鼓励自学.2022-7-28华中科技大学计算机学院8六六. .学习方法学习方法 (Study methods)(Study methods)(1) (1) 课前要预习,课堂要专心,课后要复习课前要预习,课堂要专心,课后要复习(2) (2) 通过预习、听课、复习、以及作业和实验,确保消化课堂和教材的相通过预习、听课、复习、以及作业和实验,确保消化课堂和教材的相关内容。关内容。(3) (3) 要学会自己
11、看书、理解,逐步减少对老师的依赖,培养良好的自学能要学会自己看书、理解,逐步减少对老师的依赖,培养良好的自学能力。同时,由于学时紧张,假期的冲击,讲课速度会逐步加快到一力。同时,由于学时紧张,假期的冲击,讲课速度会逐步加快到一个合适的水平,以保证教学计划的完成,因此课前课后一定研读教个合适的水平,以保证教学计划的完成,因此课前课后一定研读教材。材。(4) (4) 认真、独立的完成作业。认真、独立的完成作业。(5) (5) 要重视实验。上机实验前要求预先编好有关程序,把上机的重点放到要重视实验。上机实验前要求预先编好有关程序,把上机的重点放到程序的编辑、修改、编译、链接、跟踪、调试程序方面来。放
12、到观程序的编辑、修改、编译、链接、跟踪、调试程序方面来。放到观察程序运行过程中的中间结果和运行完毕后的运行结果方面来。最察程序运行过程中的中间结果和运行完毕后的运行结果方面来。最终使自己的大脑变成一台终使自己的大脑变成一台“计算机计算机”,能够在脑袋中运行自己的程,能够在脑袋中运行自己的程序,判断各种情况下程序的走向等等。序,判断各种情况下程序的走向等等。 2022-7-28华中科技大学计算机学院9七定位问题七定位问题(Orientation)(Orientation)n培养的学生应该是将来能够与培养的学生应该是将来能够与MicroSoft的程序员,的程序员,软件大师们一争高下的人才,应该是有
13、朝一日能够软件大师们一争高下的人才,应该是有朝一日能够根据实际应用需求,发明创造新型计算机程序设计根据实际应用需求,发明创造新型计算机程序设计语言的人才。因此要高标准、严要求。不仅要掌握语言的人才。因此要高标准、严要求。不仅要掌握C的语法、语义,学好用好的语法、语义,学好用好C;而且要了解各种语;而且要了解各种语言成分产生、流传、延续、发展的深层次原因和需言成分产生、流传、延续、发展的深层次原因和需求背景。为学习后续课程,为将来能够熟练的用求背景。为学习后续课程,为将来能够熟练的用C写系统软件、底层软件、共享软件奠定坚实的语言写系统软件、底层软件、共享软件奠定坚实的语言基础。基础。2022-7
14、-28华中科技大学计算机学院10八八. .建议和意见建议和意见欢迎就教学方法,讲课速度,教学欢迎就教学方法,讲课速度,教学内容的深度和广度提出好的建议和内容的深度和广度提出好的建议和意见,以便把本门课程的教学组织意见,以便把本门课程的教学组织实施好。实施好。 2022-7-28华中科技大学计算机学院11C语言程序设计-第1章 概论nC C语言是目前全球流传最广、使用最多的程序设计语言是目前全球流传最广、使用最多的程序设计语言。本章介绍内容为语言。本章介绍内容为: :1.1.学习学习C C语言程序设计的第一个例子。语言程序设计的第一个例子。2.2.C C语言的产生与发展,语言的产生与发展,C C
15、语言的语言特征,语言的语言特征,C C语言的标准。语言的标准。3.3.计算机硬件系统的组成,数的编码表示以及数在内存中的计算机硬件系统的组成,数的编码表示以及数在内存中的表现形式。表现形式。4.4.算法的概念及其表示方法。算法的概念及其表示方法。5.5.对对C C语言程序设计作了概略性的介绍。语言程序设计作了概略性的介绍。6.6.同时介绍了同时介绍了N N进制数进制数, ,数之间转换的方法,以及原码、补码、数之间转换的方法,以及原码、补码、反码及其相关运算。反码及其相关运算。2022-7-28华中科技大学计算机学院12C C语言的应用领域语言的应用领域1. 操作系统设计操作系统设计UNIX,L
16、INUX,WINDOWS底层及驱动等底层及驱动等.2. 计算机网络与通信系统计算机网络与通信系统TCP/IP协议栈协议栈,路由软件路由软件,交换机软件等交换机软件等.3. 系统软件系统软件各种各种DBMS,如如Oracle,Sybase,MS SQL Server等等;各种编译各种编译器软件器软件.4. 嵌入式系统嵌入式系统(民用民用)汽车汽车(40多个微处理器系统多个微处理器系统),手机手机,U盘驱动盘驱动,MP3等等;嵌入式操嵌入式操作系统作系统;智能卡系统等智能卡系统等.5. 国防国防,军工军工,航空航天航空航天,工业控制系统均以工业控制系统均以C作为软件开发的主流作为软件开发的主流语言
17、语言.2022-7-28华中科技大学计算机学院131.1 学习学习C C语言程序设计的第一个例子语言程序设计的第一个例子 例例1.1 1.1 输入自己的名字的汉语拼音,输入自己的名字的汉语拼音,要计算机问候自己并且输出这是自要计算机问候自己并且输出这是自己学习己学习C C语言的第一个程序的句子。语言的第一个程序的句子。2022-7-28华中科技大学计算机学院14例例1.11.1的程序的程序1.#include stdio.h2.void show(char str);3.void main(void)4.5. char name20;6. printf(Input your name plea
18、se!n);7. gets(name);8. printf(Hello %s!n,name);9. show(name);10.11.void show(char str)12.13. printf(This is the first program for %s to learn C programming!n,str);14. 2022-7-28华中科技大学计算机学院15操作例操作例1.11.1的程序的程序n进入编辑进入编辑按按F10F10功能键激活菜单功能键激活菜单用光标左右移动用光标左右移动键选键选File File 选选New New 然后回车进入编辑状态。然后回车进入编辑状态。n编
19、辑编辑将上面的程序从键盘输入到计算机中完成源将上面的程序从键盘输入到计算机中完成源程序的编辑程序的编辑 F2 F2保存保存. .n编译链接编译链接: : 按按F10F10功能键激活菜单,功能键激活菜单, 选选Run Run 然然后回车。此时源程序会被编译形成后回车。此时源程序会被编译形成.OBJ.OBJ文件、再通文件、再通过链接形成过链接形成.EXE.EXE文件,最后运行该文件,最后运行该.EXE.EXE文件。文件。n过程过程: .C: .C源文件源文件 .OBJ.OBJ文件文件 .EXE.EXE文件文件运行得运行得到结果到结果n观看结果观看结果: Alt-F5 : Alt-F5 2022-7
20、-28华中科技大学计算机学院16例例1.11.1的程序的结果的程序的结果n人机交互与运行结果如下:人机交互与运行结果如下:Input your name please!Jichang Cao(此为输入信息)(此为输入信息)Hello Jichang Cao!This is the first program for Jichang Cao to learn C programming! 2022-7-28华中科技大学计算机学院171.#include stdio.h2.void show(char str);3.void main(void)4.5. char name20;6. printf
21、(Input your name please!n);7. gets(name);8. printf(Hello %s!n,name);9. show(name);10.11.void show(char str)12.13. printf(This is the first program for %s to learn C programming!n,str);14. 1.1.2 1.1.2 解释分析第一个解释分析第一个C C程序程序2022-7-28华中科技大学计算机学院181.2 C1.2 C语言的产生、发展与语言特征语言的产生、发展与语言特征1.2.1 C1.2.1 C语言的产生与发
22、展语言的产生与发展 FORTRAN(1957年)年)ALGOL 60(1960年)年) 传统传统C或或K&R C(1978)CPL(1963年)年) ANSI C(1989,美国国家标准),美国国家标准)BCPL(1967年)年) 标准标准 C(ISO/IEC 9899:1990,俗称,俗称C90)B(1969年年-1970年)年) 最新标准最新标准 C(ISO/IEC 9899:1999俗称俗称C99)C(1971年年-1973年)年)图图1.1 C语言的继承、产生与发展历程语言的继承、产生与发展历程2022-7-28华中科技大学计算机学院191.2.3 C1.2.3 C语言的语言特征语言的
23、语言特征1)语言简洁紧凑语言简洁紧凑2)目标代码质量高目标代码质量高3)语言表达能力强语言表达能力强 4)流程控制结构化流程控制结构化 5)弱类型弱类型 6)“中级语言中级语言”特性特性 7)书写自由、使用灵活书写自由、使用灵活 8)可移植性好可移植性好 2022-7-28华中科技大学计算机学院201.3 1.3 计算机硬件系统计算机硬件系统 n一台计算机硬件系统由一台计算机硬件系统由CPU、内存、外存、其他、内存、外存、其他I/O设备和总线组成。设备和总线组成。见图见图1.2 计算机硬件系统组成的示意图计算机硬件系统组成的示意图nCPU 又称为中央处理器又称为中央处理器 。 CPU又是由运算
24、器、又是由运算器、控制器、指令计数器、内部寄存器、标志寄存器控制器、指令计数器、内部寄存器、标志寄存器等部件组成。等部件组成。 n内存又称为内存储器,用以存放程序和数据。内存又称为内存储器,用以存放程序和数据。n总线是用以连接计算机各个部件的线路,它完成总线是用以连接计算机各个部件的线路,它完成各个部件之间的信息传送。根据传送信号种类的各个部件之间的信息传送。根据传送信号种类的不同,总线又分成地址总线、数据总线和控制总不同,总线又分成地址总线、数据总线和控制总线。线。 2022-7-28华中科技大学计算机学院21内存编址内存编址, ,内存容量内存容量, ,字长字长n内存以字节为单位线性连续编址
25、。即按照内存以字节为单位线性连续编址。即按照0 x00000 x0000,0 x00010 x0001,0 x00020 x0002,的方式;从低地址端开始向的方式;从低地址端开始向高地址端为每一个内存字节进行顺序连续编号。高地址端为每一个内存字节进行顺序连续编号。n10241024个字节称为个字节称为1K1K字节,字节,1024K1024K字节称为字节称为1M1M字节,字节,1024M1024M字节称为字节称为1G1G字节。字节。1024G1024G字节称为字节称为1T1T字节。字节。 nCPUCPU数据总线的宽度(数据总线的宽度(bitbit数)称为计算机的机器数)称为计算机的机器字长。对
26、位,机器字长为字节;对字长。对位,机器字长为字节;对位,机器字长为字节;对位位,机器字长为字节;对位,机器字长为字节。,机器字长为字节。 2022-7-28华中科技大学计算机学院22外存和其他外存和其他I/OI/O设备设备 n外存指计算机的外存储器。常用的硬盘、软外存指计算机的外存储器。常用的硬盘、软盘、盘、U盘、光盘、以及磁盘阵列都属于外存。盘、光盘、以及磁盘阵列都属于外存。外存存储的信息在断电之后仍然能够保存,外存存储的信息在断电之后仍然能够保存,这是外存的第一个特点。这是外存的第一个特点。 n其他其他I/O设备设备 :键盘键盘 ,显示器显示器 ,打印机打印机 ,绘图绘图仪仪 2022-7
27、-28华中科技大学计算机学院231.4 1.4 数和字符的机器码表示数和字符的机器码表示 n1.4.1 进位计数制进位计数制n数量用于描述事物的多少。数目则是表示事数量用于描述事物的多少。数目则是表示事物的个数。而表示数目的符号则是数字,往物的个数。而表示数目的符号则是数字,往往简称为数。一个数在不同的进位制下具有往简称为数。一个数在不同的进位制下具有不同的表示,因而形成数制的概念。数制是不同的表示,因而形成数制的概念。数制是关于记数的法则。根据进位基数的不同关于记数的法则。根据进位基数的不同,常用常用的有十进制、二进制、八进制、十六进制等。的有十进制、二进制、八进制、十六进制等。2022-7
28、-28华中科技大学计算机学院241. 1. 二进制数及其运算二进制数及其运算n1)二进制数)二进制数n二进制数是由二进制数是由0和和1组成的数字串。对于一组成的数字串。对于一个二进制数来讲,它具有两个下面基本特点:个二进制数来讲,它具有两个下面基本特点:n(1) 只有只有0和和1两个不同的数字符号。两个不同的数字符号。n(2) 逢逢2进位进位1。2022-7-28华中科技大学计算机学院25二进制数的权值二进制数的权值n对由进位计数制描述的数来讲,一个数字符号在该数的不同对由进位计数制描述的数来讲,一个数字符号在该数的不同的数位具有不同的权的数位具有不同的权(也称为权值或基值也称为权值或基值),
29、因此所表现的值,因此所表现的值是不一样的。二进制数也是如此。二进制数中不同的数位所是不一样的。二进制数也是如此。二进制数中不同的数位所具有的权值见教材图具有的权值见教材图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而带二进制小数的二进制数而带二进制小数的二进制数(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)102022-7
30、-28华中科技大学计算机学院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 2022-7-28华中科技大学计算机学院27二进制加法举例二进制加法举例n例例1.2 二进制加法举例,求二进制加法举例,求(10110111)2+(01011011)2的和。的和。1 0 1 1 0 1 1 1+ 0 1 0 1 1
31、0 1 1进位进位 1 1 1 1 1 1 1 1 0 0 0 1 0 0 1 0n所以,所以,(10110111)2+(01011011)2=(100010010)22022-7-28华中科技大学计算机学院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 1 0 1 1n 0 1 0 1 1 1 0 0n所以,所以,(10110111)2-(01011011)2=(01011100)22022-7-28华中科技大学计算
32、机学院292. 2. 八进制数及其运算八进制数及其运算n八进制数是由八进制数是由0到到7组成的数字串。八进制组成的数字串。八进制数具有如下两个基本特点:数具有如下两个基本特点:n(1) 只有只有0,1,2,3,4,5,6,7八个不八个不同的数字符号。同的数字符号。n(2) 逢逢8进位进位1。n在在C语言中,通过加前导零的方式来表示一语言中,通过加前导零的方式来表示一个数是八进制数。如:个数是八进制数。如:0136表示的是八进表示的是八进制数制数(136)8。 2022-7-28华中科技大学计算机学院303 3十六进制数及其运算十六进制数及其运算n将将4 4位二进制数组合成为十六进制数。与二进制
33、、位二进制数组合成为十六进制数。与二进制、八进制数类似,十六进制数也有两个基本特点:八进制数类似,十六进制数也有两个基本特点: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)。这十六个数字符号与二进)。这十六个数字符号与二进制、八进制、十进制数之间的关系如表制、八进制、十进制数之间的关系如表1.21.2所示。所示。n(2 2)逢)逢1616进位进位1 1。n在在C C语言中,通过
34、加前导语言中,通过加前导0 x0 x或前导或前导0X0X的方式来表示的方式来表示一个数是十六进制数。如:一个数是十六进制数。如:0 x2d5b0 x2d5b表示的是十六进表示的是十六进制数制数(2d5b)(2d5b)1616。0XABCD0XABCD也是合法的十六进制数。也是合法的十六进制数。 2022-7-28华中科技大学计算机学院31表表1.21.2十六进制的十六进制的1616个不同数字符号与十个不同数字符号与十进制、八进制、二进制数之间的关系进制、八进制、二进制数之间的关系 2022-7-28华中科技大学计算机学院32十六进制加减法运算举例十六进制加减法运算举例n例例1.5 十六进制加减
35、法运算举例,求十六进制加减法运算举例,求0XABCD与与(2d5b)16的和,以及的和,以及0XABCD与与(2d5b)16的差。的差。n解解 0XABCD+(2d5b)16=0XD928 0XABCD-(2d5b)16=0 x7E722022-7-28华中科技大学计算机学院331.4.2 1.4.2 进位制数之间的转换进位制数之间的转换n1. 十进制整数转换为二进制整数十进制整数转换为二进制整数2022-7-28华中科技大学计算机学院34进位制数之间的转换进位制数之间的转换2. 2. 二进制整数转换为十进制整数二进制整数转换为十进制整数n用按权展开的方式即可求得该数的十进制表示。用按权展开的
36、方式即可求得该数的十进制表示。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)10102022-7-28华中科技大学计算机学院35进位制数之间的转换进位制数之间的转换3. 二进制整数转换为八进制整数二进制整数转换为
37、八进制整数n二进制数转换为八进制数可以采用二进制数转换为八进制数可以采用3位分组法。从位分组法。从整数部分的最低位起,每整数部分的最低位起,每3位分成位分成1组,高位部分不组,高位部分不足足3位则通过加前导位则通过加前导0的方式补足的方式补足3位,然后把每位,然后把每3位二进制数用对应的八进制数来表示即可。位二进制数用对应的八进制数来表示即可。n例例1.8 将二进制整数将二进制整数(10111101)2转换为八进制转换为八进制整数。整数。解解 (10111101)2=(010 111 101)2= (275)82022-7-28华中科技大学计算机学院36进位制数之间的转换进位制数之间的转换4.
38、 八进制整数转换为二进制整数八进制整数转换为二进制整数n八进制整数转换为二进制整数只需要将每一八进制整数转换为二进制整数只需要将每一位八进制数用对应的二进制数表示即可。位八进制数用对应的二进制数表示即可。n例例1.9 将八进制数将八进制数(377377)8转换为二进转换为二进制数。制数。解解 (177777)8=(001 111 111 111 111 111)2=(1111111111111111)22022-7-28华中科技大学计算机学院37进位制数之间的转换进位制数之间的转换5. 5. 二进制整数转换为十六进制整数二进制整数转换为十六进制整数n将二进制整数转换为十六进制整数采用将二进制整
39、数转换为十六进制整数采用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 将二进制数将二进制数(10111101)(10111101)2 2转换为十六进转换为十
40、六进制数。制数。解解 (10111101)(10111101)2 2=(1011 1101)=(1011 1101)2 2=(BD)=(BD)16162022-7-28华中科技大学计算机学院38进位制数之间的转换进位制数之间的转换6. 6. 十六进制整数转换为二进制整数十六进制整数转换为二进制整数n十六进制数转换为二进制数只需要将每一位十六进制数转换为二进制数只需要将每一位十六进制数用对应的十六进制数用对应的4位二进制数表示即可。位二进制数表示即可。n例例1.11 将十六进制数将十六进制数(ABCD)2转换为二进转换为二进制数。制数。解解 (ABCD)2=(1010 1011 1100 110
41、1)2=(1010101111001101)22022-7-28华中科技大学计算机学院391.4.3 1.4.3 数的机器码表示数的机器码表示1. 机器数与真值机器数与真值n机器数机器数: 在计算机中,将一个数的最高位在计算机中,将一个数的最高位定义为符号位,其余各位为数值位。并且定义为符号位,其余各位为数值位。并且规定符号位之值为规定符号位之值为0表示正,符号位之值表示正,符号位之值为为1表示负。用这种方法表示的数称为机表示负。用这种方法表示的数称为机器数。器数。n真值真值: 机器数的数值称为该机器数的真值。机器数的数值称为该机器数的真值。也就是正、负号后跟二进制数的绝对值就也就是正、负号后
42、跟二进制数的绝对值就构成真值。构成真值。 2022-7-28华中科技大学计算机学院402. 2. 原码原码定义定义: 对于一个二进制数对于一个二进制数X,如果规定用最,如果规定用最高位为符号位,其余各位为该数的绝对值。高位为符号位,其余各位为该数的绝对值。并且规定符号位之值为并且规定符号位之值为0表示正,符号位之表示正,符号位之值为值为1表示负,则采用这种方式形成的二进表示负,则采用这种方式形成的二进制编码称为称为该二进制数制编码称为称为该二进制数X的原码。的原码。2022-7-28华中科技大学计算机学院41求十进制数的原码表示求十进制数的原码表示n例例1.12 求十进制数求十进制数125和和
43、-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位)位)2022-7-28华中科技大学计算机学院42真值真值0 0的原码表示不惟一的原码表示不惟一n
44、值得注意的是,根据定义,真值值得注意的是,根据定义,真值0的原码表的原码表示不惟一,有示不惟一,有+0和和-0之分。之分。 n+0原原=00000000 (8位)位)n-0原原=10000000 (8位)位)2022-7-28华中科技大学计算机学院433. 3. 补码补码n补码的定义是正数的补码等于正数的原码,负数的补码为补码的定义是正数的补码等于正数的原码,负数的补码为其原码除符号位不动,其余各位变反再加其原码除符号位不动,其余各位变反再加1所得。所得。n例例1.13 分别求十进制数分别求十进制数35和和-1在在8位机和位机和16位机中的补位机中的补码表示。码表示。解解 设设x1=35,x2
45、=-1;在在8位机中,位机中,x10,x1 补补=x1 原原 =00100011;x20,x2原原 =10000001, x2 补补 =11111110+1=11111111;n在例在例1.13中,如果令中,如果令x1和和x2都为零,则容易算出它们的补都为零,则容易算出它们的补码都是零。也就是说,对于真值码都是零。也就是说,对于真值0,其补码是惟一的。即:,其补码是惟一的。即:+0补补=-0补补=000000最右边式子中最右边式子中0的个数等于机器的字长数。的个数等于机器的字长数。 2022-7-28华中科技大学计算机学院444. 4. 反码反码n在计算机中,有时还会用到数的反码。对正数而在计
46、算机中,有时还会用到数的反码。对正数而言,其反码与原码、补码的表示相同;对负数而言,其反码与原码、补码的表示相同;对负数而言,反码符号位的定义与原码、补码相同,但需言,反码符号位的定义与原码、补码相同,但需要将对应原码的数值位按位变反。要将对应原码的数值位按位变反。n例例1.15 分别求十进制数分别求十进制数6和和-1在在8位机中的反码位机中的反码表示。表示。解解 6反反=00000110;-1反反=对对10000001的的数值位按位变反数值位按位变反=111111102022-7-28华中科技大学计算机学院455 5码的内存存储形式码的内存存储形式n码是指计算机内存中存储的数据。根据存储数据
47、的性质,码是指计算机内存中存储的数据。根据存储数据的性质,码可以分为数值码、字符码和图象码。码可以分为数值码、字符码和图象码。n数值码用于表示数的大小,常见的有整数和浮点数。数值码用于表示数的大小,常见的有整数和浮点数。n字符码用于表示英文字母、标点符号、控制字符以及汉字字符码用于表示英文字母、标点符号、控制字符以及汉字和其它文字的编码。和其它文字的编码。n图象码是用于表示图象中象素的颜色或灰度。虽然它们都图象码是用于表示图象中象素的颜色或灰度。虽然它们都是以二进制码的表现形式存储在内存之中,但物理意义却是以二进制码的表现形式存储在内存之中,但物理意义却各不相同。各不相同。nC语言的基本处理对
48、象是字符和数字。在语言的基本处理对象是字符和数字。在16位计算机中,位计算机中,整型数占整型数占2个字节,在个字节,在32位计算机中,整型数占位计算机中,整型数占4个字节。个字节。 2022-7-28华中科技大学计算机学院461.4.4 1.4.4 字符的编码表示字符的编码表示n1字符的编码的概念字符的编码的概念n计算机在屏幕上能够输出英文、汉字,乃至各种各计算机在屏幕上能够输出英文、汉字,乃至各种各样的民族文字,其基础在于对字符进行编码以及构样的民族文字,其基础在于对字符进行编码以及构造相应的点阵字模。造相应的点阵字模。n用户的字符输入通过编码在内存中以二进制数码存用户的字符输入通过编码在内
49、存中以二进制数码存储,机器内部对字符的处理实际上是对字符编码的储,机器内部对字符的处理实际上是对字符编码的处理。处理。n输出的时候则是通过字符的编码去索引对应的点阵输出的时候则是通过字符的编码去索引对应的点阵字模到内存中,然后进一步通过内存中的点阵字模字模到内存中,然后进一步通过内存中的点阵字模去控制显象管,在屏幕的指定位置将字符显示出来。去控制显象管,在屏幕的指定位置将字符显示出来。2022-7-28华中科技大学计算机学院471.4.4 1.4.4 字符的编码表示字符的编码表示n解释教材解释教材:图图1.3 英文字符英文字符O和汉字字符中的点和汉字字符中的点阵字模示意图阵字模示意图n更正更正
50、:大写字母大写字母O的二进制编码依次是:的二进制编码依次是:0 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 2022-7-28华中科技大学计算机学院482 2ASCIIASCII码码n对于西文字符