C程序设计课件进制幻灯片.pptx
《C程序设计课件进制幻灯片.pptx》由会员分享,可在线阅读,更多相关《C程序设计课件进制幻灯片.pptx(59页珍藏版)》请在冰豆网上搜索。
课程目标,本课程的目的是使学生掌握一门高级程序设计语言;掌握程序设计的基本概念与方法;学会利用C语言解决一般应用问题;了解结构化程序设计的基本概念,并为后续的专业课程奠定程序设计基础。
总学时:
64课内实验:
20,教学用书,教材:
C语言程序设计计算机应用基础教研室参考:
TheCProgrammingLanguageK&RC程序设计(第二版)谭浩强,清华大学出版社TurboC2.0实用大全人民邮电出版社,成绩评定,成绩评定方法,平时成绩期末成绩平时总成成绩绩,1、出勤率2、课堂(实验)纪律3、按时交作业(实验报告),2080100,学习本课程应注意的事项,准备笔记本一个作业本软盘(实验作业备份)课外多做练习,第一章计算机基础知识,课程内容:
计算机基本组成进制及进制转换数据在内存中的存储计算机语言重点:
进制转换掌握数据在内存中的存储方法及字节,字、地址的概念。
电子计算机的发展,第一台电子计算机:
1946年2月诞生电子数字积分计算机(ENIAC),每秒5000次。
1、社会需要2、物质基础,计算机系统的组成,计算机系统,软件,外部设备,输入设备:
键盘、鼠标、扫描仪等输出设备:
显示器、打印机、音响等外存:
软盘、硬盘、光盘、U盘等操作系统:
DOS、Windows、Unix、Linux语言处理程序:
C、Pascal、VB等实用程序:
诊断程序、排错程序等办公软件包、数据库管理系统,系统软件,应用软件,硬件,运算器,CPU控制器,主机,内存,随机存储器(RAM)只读存储器(ROM)高速缓冲存储器(Cache),处理器,处理器,控制器,运算器,控制整个计算机所有部,件的工作,执行算术运算和逻辑运算,存储器,存储器是计算机存储数据和程序的记忆单元集合,,每个记忆单元由8位二进制位组成,可读写其中的数据。
存储器通常分为内存储器和外存储器存储器,存放大量信息的外存储器,信息交流中心内存储器,存储器,每个记忆单元由8位二进制位组成。
1KB=210B=1024B1MB=210KB=1024KB1GB=210MB=1024MB1TB=210GB=1024GB,字节Byte,76543210,位bit,以电子元件对计算机发展历史的划代,冯诺依曼原理:
1):
采用二进制表示数据和指令。
:
程序和数据一样存放在内存中。
:
计算机由运算器、存储器、控制器、输入设备和输出设备五大部分组成。
输入设备,存储器,运算器,处理结果,请求信号,程序+数据,控制器,输出设备,取数,存数,地址,指令,反馈信号,操作命令,响应信号,响应信号请求信号,冯诺依曼结构框图,计算机基本工作原理,数据传送指令数据处理指令程序控制指令输入输出指令其它指令,CPUAndOrIfGoto,内存,I/O设备,主机,对计算机的硬件进行管理等,指令是能被计算机识别并执行的的二进制代码,完成一种操作。
结构,指令分类,操作码操作数操作码要完成的操作类型或性质操作数操作的内容或所在的地址,1.指令的执行是依次完成指令的三个部件后,才开始下一条指令的执行,在此过程中在执行某功能部件时,其他两个功能部件是不工作的。
2.指令流水线技术指令流水线技术就是使这三个功能部件并行工作,则可提高计算机执行指令的速度,现在的计算机一般采用流水线技术。
则有三条指令的并行执行理论速度是串行执行的3倍,计算机基本工作原理,1.指令的串行执行一条指令的执行过程分为以下3步骤:
取指令按照指令计数器中的地址,从内存储器中取出指令,并送往指令寄存器。
分析指令对指令寄存器中存放的指令进行分析,由译码器对操作码进行译码,将指令的操作码转换成相应的控制电位信号;由地址码确定操作数地址。
执行指令由操作控制线路发出完成该操作所需要的一系列控制信息,去完成该指令所要求的操作。
一条指令执行完成,指令计数器加1或将转移地址码送入程序计数器,然后回到。
采用总线的目的:
若在计算机中把有联系的各部件用单独的导线连接,将会导致错综复杂的线路,不仅制造印刷电路板困难,并且不容易查错和排除故障;采用总线后,给制造工艺和故障的排除带来了极大的方便,也提高了线路的可靠性。
总线(BUS):
信息传送的公共通道,总线的分类如下:
内部总线:
在CPU内部引用的总线。
外部总线:
在CPU之外,将CPU与外部设备接口进行连接的总线。
按传输数据不同,分为:
1.数据总线(DB):
用于CPU与内存或I/O接口之间的数据传递,它的条数取决于CPU的字长,信息传送是双向的(可送入到CPU也可由CPU送出)。
2.地址总线(AB):
用于传送存储单元或I/O接口的地址信息,它的条数决定了计算机内存的大小:
若一台计算机中有16条地址总线,则它的内存大小为216(64K)。
3.控制总线(CB):
传送控制器的各种控制信息,它的条数由CPU的字长决定,信息传送是单向的,只由CPU发出。
2.进制及进制转换,计算机中的数制与编码及数的表示1、进位计数制2、计算机中采用二进制数的优点3、二进制与十进制之间的相互转换4、二进制与八进制、十六进制之间的相互转换,电脑中数据的表示基础-二进制所有数据在电脑中,都以二进制的形式表示:
计算机中采用二进制数的优点便于用电子器件模拟表示运算简单可靠性高,电脑中所涉及的四种数制,数进制,1.数制定义,按进位原则进行计数,称为进位计数制,简称“数制”。
基数:
数制中所需要的数码符号的总个数位权:
一个数字在某个固定位置上所代表的值,处在不同位置上的数码符号所代表的权值不同,每个数码的位置决定了它的权值或者位权。
位权和基数的关系是:
各进位制中位权的值是基数的若干次幂。
进位计数制
(1)十进制数制主要特点:
有十个不同的计数符号:
0、1、2、3、4、5、6、7、8、9,故其基数为10;按“逢十进一”的规则进行计数。
例:
666.66=,610261016100610-1610-2,
(2)二进制数制主要特点:
仅有两个不同的计数符号:
0和1,其基数为2;按“逢二进一”的规则计数。
例:
(101101.11)2=,125024123122021120,12-112-232+0+8+4+0+1+0.5+0.25(45.75)10,=,(3)八进制数制主要特点:
有八个不同的计数符号:
0、1、2、3、4、5、6、7,其基数为8;按“逢八进一”的规则计数。
例:
(642)8=682+481+280=(418)10(10,100,101.010,110,1)2=(245.264)8(267.435)8=(010110111.100011101)2,(4)十六进制数制主要特点:
有16个不同的计数符号:
0、1、2、3、4、5、6、7、8、9、A(10)、B(11)、C(12)、D(13)、E(14)、F(15),其基数为16位;按“逢十六进一”的规则计数。
例:
(9B4.4)16=9162+11161+4160+416-1=(2484.25)10,小结:
无论是什么进制的数,均可以写成相应的展开式。
设有一个A进制的数,则若该数为BnBn-1B2B1B0.B-1B-2B-m,则该数可以写成其对应的展开式如下:
BnAn+Bn-1An-1+B2A2+B1A1+B0A0+B-1A-1+B-2A-2+B-mA-m,不同进制之间的转换,1.r进制转化成十进制an.a1a0.a-1.a-m(r)=a*rn+a*r1+a*r0+a*r-1+.a*r-m10101(B)=24+22+1=21101.11(B)=22+1+2-1+2-2=5.75101(O)=82+1=6571(O)=78+1=57101A(H)=163+16+104106,2.十进制转化成r进制整数部分:
除以r取余数,直到商为0,余数从右到左排列。
小数部分:
乘以r取整数,整数从左到右排列。
“除2逆序取余”,“乘2取整”,十进制数转换为二进制数,例:
将十进制数53.625转换为对应的二进制数:
222222,5326136310,101011,06252,1,012502502,0,1,00500500201000000,53:
110101,0625:
010153625110101101B,八进制和十六进制转化成二进制,每一个八进制数对应二进制的三位。
每一个十六进制数对应二进制的四位。
2C1D(H)=0010110000011101(B)2C1D7123(O)=111001010011(B)7123,01100100(B),64(H),6,4,0110,0100,八进制和十六进制转化成二进制,每一个八进制数对应二进制的三位。
每一个十六进制数对应二进制的四位。
2C1D(H)=0010110000011101(B)2C1D7123(O)=111001010011(B)7123,001100100(B),144(O),1,4,4,001,100,100,二进制转化成八进制和十六进制,整数部分:
从右向左进行分组。
小数部分:
从左向右进行分组。
转化成八进制三位一组。
转化成十六进制四位一组,不足补零。
后边补两个零0100,例:
将1101101110.110101(B)转化为八进制和十六进制表示1101101110.110101(B)1101101110.110101(B)15566536ED41556.65(O)36E.D4(H),二进制与八进制、十六进制之间的相互转换,二进制数转换成八进制数:
以小数点为分界点,左右三位一节,不足三位以零补足三位。
例(101101.01)2=(101,101.010)=(55.2)8八进制数转换成二进制数:
将每位八进制数码以三位二进制数表示。
例(76.42)8=(111110.100010)2=(111110.10001)2,(3)二进制数转换成十六进制数:
以小数点为分界点,左右每四位一节,不足四位以零补足四位。
(1111011011.100101011)2=(11,1101,1011.1001,0101,1000)2=(3DB.958)16(4)十六进制数转换成二进制数:
将每位十六进制数码以四位二进制数表示。
例(A3B.C)16=(101000111011.1100)2=(101000111011.11)2,3.数据在内存中的存储,一、电脑中数据的表示与存储,位:
(Bit)字节:
(Byte),数字化信息编码信息:
数值、文字、语音、图形和图象。
信息必须数字化编码,才能传送、存储和处理。
存储容量:
描述计算机存储能力的指标,1Tb=1024Gb1Gb=1024Mb1Mb=1024Kb1Kb=1024Byte,1100110,存储空间内存片,二、数据在内存中的存储1、内存的组织形式,数据(Data):
是载荷信息的物理符号比特(Bit):
最小的信息存储单位,用来表示二进制中的一个位(0或1)字节(Byte):
8位二进制数,作为一个完整单位来处理一组连续的二进制数字(Word):
电脑中一个存储单元的位数称之为字长,是衡量计算机性能的重要指标,通常为字节的整数倍。
连续两个字节称字,连续的两个字称为双字。
地址:
内存中各种信息存放的位置,一个字节为一个地址。
内存中的几个概念,三、数据的存储,一、整数的存储机器码:
数据在内存中的存储形式真值:
机器码所表示的实际值。
例如,真值数(-0101100)B,其机器数为10101100,11,0,0110,0,数符注意:
机器数表示的范围受到字长和数据类型的限制。
若表示一个整数,字长为8位,最大值01111111,最高位为符号位,因此此数最大值为127。
若数值超出127,就要“溢出”。
为了表示更大或较小的数,用浮点数来表示。
1)有符号数的存储,计算机中有符号数的存储是以补码形式存储的。
一个整数有以下三种码制:
原码原码就是用最高位表示数的正、负号,0表示正,1表示负,而数值部分用最高位以后的若干位来表示。
补码补码的取码原则是:
正数的补码和其原码相同;负数的补码是它的原码除符号位外逐位取反(即0变1,1变0),最后在末位加1。
原码变反码的规则为:
正数的反码与原码相同;负数的反码是将它的原码除符号位外逐位取反。
假定一个整数用一个字节存储。
X原:
(2)反码,0,0=XX,1,X=0X,
(1)原码,X反:
0,0=XX,1,X=0X,X补:
0,0=XX,1,X=0X+1,(3)补码,(3)反码,补码,原码,反码,补码,采用补码来表示正、负整数时,+0和-0的取码是完全相同的,而原码对+0和-0的取码是不相同的。
2)无符号数的存储无符号数存储时只需将某数用二进制表示,然后补足八位,即是其存储形式。
其表示范围为0255。
如果整数存储占两个字节,其表示范围为065535。
二、字符的存储字符在内存中占一个字节的内存空间。
存储的是该字符对应的ASCII。
七位ASCII代码表,A,A10000010100000176543210,西文字符编码,每一个字符有一个编码。
(1)ASCII码(AmericanStandardCodeforInformationInterchange)常用字符有128个,编码从0到127。
“ASCII之父”BobBemer,控制字符:
032,127;普通字符:
94个。
每个字符占一个字节,用7位,最高位为0。
(2)EBCDIC码(ExtendedBinaryCodedDecimalInterchangeCode)扩展的二十进制交换码。
BCD码,每位十进制数用四位二进制数编码表示。
25,2,5,0010,0101,(00100101)BCD,汉字编码,汉字输入码国标区位码、全拼、双拼、微软拼音、五笔形等。
汉字内码汉字在设备或信息处理系统内部最基本的表达形式。
国标码(GB231280)及其机内码一级汉字:
3755个;二级汉字:
3008个。
汉字分区,每个区94个汉字。
每个汉字占两个字节。
机内码:
最高位为1。
通用多八位编码字符集UCS(UniversalCodeSet)包括汉字在内的各种正在使用的文字的统一的编码方案。
每个字符占4个字节。
汉字编码,(3)汉字字型码,汉字输入,输入码,国标码,内码,字型码,汉字输出,(a)点阵字符(b)点阵字库中的位图表示(c)矢量轮廓字符汉字字型码是表示汉字字型的字模数据,通常用点阵、矢量函数等方法表示。
(1)机器语言机器语言是由“”、“”二进制代码按一定规则组成的、能被机器直接理解、执行的指令集合。
例如,计算A=15+10的机器语言程序如下:
:
把15放入累加器A中:
10与累加器A的值相加,结,10110000000011110010110000001010仍放入A中11110100,果,:
结束,停机,缺点:
编程工作量大,难学、难记、难修改,只适合专业人员使用;由于不同的计算机,其指令系统不同,机器语言随机而异,通用性差,是面向机器的语言。
优点:
程序代码不需要翻译,所占空间少,执行速度快。
现在已经没有人用机器语言直接编程了。
程序设计语言与语言处理程序,
(2)汇编语言,将机器指令的代码用英文助记符来表示,代替机器语言中的指令和数据。
例如用ADD表示加、SUB表示减、JMP表示程序跳转等等,这种指令助记符的语言就是汇编语言。
例如,计算A=15+10的汇编语言程序:
MOVA,15ADDA,10HLT,:
把15放入累加器A中:
10与累加器A相加,结果存入A中:
结束,停机,优点:
汇编语言克服了机器语言难读等缺点,保持了其编程质量高,占存储空间少,执行速度快的优点。
缺点:
还是依赖于机器,通用性差。
特点:
源程序必须通过汇编程序翻译成机器语言。
常用于:
过程控制等编程。
(3)高级语言,高级语言是由表达各种意义的词和数学公式按照一定的语法规则来编写程序的语言。
例如,计算A=15+10的BASIC语言程序如下:
A=15+10PRINTAEND,15与10相加的结果放入A中输出A程序结束,优点:
通用性强,编程效率高。
缺点:
源程序要翻译成机器语言,代码不最优。
常用高级语言,Fortran语言1954年推出,适用于科学和工程计算。
COBOL语言是面向商业的通用语言,1959年推出,主要用于数据处理,随着数据库管理系统的迅速发展,很少使用。
Pascal语言结构化程序设计语言,1968年推出,适用于教学、科学计算、数据处理和系统软件等开发,目前已被C语言取代.C、C+语言1972年推出C语言,1983年加入面向对象的概念,改名为C+。
语言简练、功能强,适用面广。
BASIC语言初学者语言,1964年推出;1991年微软推出可视化的、基于对象的VisualBasic开发环境,发展到现在的VB.NET开发环境,则是完全面向对象、功能更强大。
Java语言一种新型的跨平台的面向对象设计语言,1995年推出,适用于网络应用.,语言处理程序,在所有的程序设计语言中,除了用机器语言编制的程序能够被计算机直接理解和执行外,其他的程序设计语言编写的源程序都必须经过一个翻译过程才能转换为计算机所能识别的机器语言程序,实现这个翻译过程的工具是语言处理程序,即翻译程序。
用非机器语言写的程序称为源程序;通过翻译程序翻译后的程序称为目标程序。
翻译程序也称为编译器。
针对不同的程序设计语言编写出的程序,有各自的翻译程序,互相不通用。
语言处理程序汇编程序,汇编程序是将汇编语言编制的程序(源程序)翻译成机器语言程序(目标程序)的工具。
汇编语言源程序,汇编程序,机器语言程序,语言处理程序高级语言翻译程序,高级语言源程序,1)解释方式解释方式的翻译工作由解释程序来完成,这种方式如同“口译”。
解释程序对源程序进行逐句分析,若没有错误,将该语句翻译成一个或多个机器语言指令,然后立即执行这些指令;若解释时发现错误,会立即停止,报错并提醒用户更正代码。
解释方式不生成目标程序。
解释程序,计算结果,数据优点:
查找错误的语句行和修改方便缺点:
执行速度慢,2)编译方式,翻译工作由编译程序完成。
如同“笔译”在纸上记录翻译后的结果。
编译程序过程:
对源程序编译产生目标程序;连接程序将目标程序和有关的程序库组合可执行程序。
可执行程序,编译程序,连接程序,数据,计算结果,源程序目标程序.C.OBJ.EXE,优点:
执行速度快,修改源程序后都必须重新编译。
一般高级语言(C/C+、PASCAL、FORTRAN、COBOL等)都是采用编译方式。