收藏 分销(赏)

第三章数据类型、运算符与表达式.ppt

上传人:仙人****88 文档编号:14190436 上传时间:2026-07-08 格式:PPT 页数:48 大小:382.50KB 下载积分:10 金币
下载 相关
第三章数据类型、运算符与表达式.ppt_第1页
第1页 / 共48页
第三章数据类型、运算符与表达式.ppt_第2页
第2页 / 共48页


点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第三章 数据类型、运算符与表达式,预备知识,二进制、八进制、十六进制转换成十进制,方法:按权相加,十进制转换成二进制、八进制、十六进制,原理:,方法:连续除以基,从低到高记录余数,直至商为,0,例 把十进制数,59,转换成二进制数,59,2,29,2,14,2,7,2,3,2,1,2,0,(59),10,=(111011),2,1,1,0,1,1,1,1 1 1 0 1 1,余,余,余,余,余,余,例 把十进制数,159,转换成八进制数,159,8,19,8,2,8,0,(159),10,=(237),8,2 3 7,余,7,余,3,余,2,例 把十进制数,459,转换成十六进制数,459,16,28,16,1,16,0,(459),10,=(1CB),16,1 C B,余,11,余,12,余,1,例,(1101001),2,=(,00,1,101,001),2,=(151),8,例,(246),8,=(,0,10,100,110),2,=(10100110),2,000 0,001 1,010 2,011 3,100 4,101 5,110 6,111 7,二进制转换成八进制:从右向左,每,3,位一组(不足,3,位左补,0,),转换成八进制,八进制转换成二进制:用,3,位二进制数代替每一位八进制数,二进制转换成十六进制:从右向左,每,4,位一组(不足,4,位左补,0,),转换成十六进制,十六进制转换成二进制:用,4,位二进制数代替每一位十六进制数,例,(11010101111101),2,=(,00,11,0101,0111,1101),2,=(357D),16,例,(4B9E),16,=(,0,100,1011,1001,1110),2,=(100101110011110),2,0000 0,0001 1,0010 2,0011 3,0100 4,0101 5,0110 6,0111 7,1000 8,1001 9,1010 A,1011 B,1100 C,1101 D,1110 E,1111 F,内存以字节为单元组成,每个字节有一个地址,一个字节一般由,8,个二进制位组成,每个二进位的值是,0,或,1,0,1,2,3,4,5,6,7,0,1,2,3,4,5,6,7,8,9,10,.,7,6,4,3,2,5,1,原码:最高位为符号位,其余各位为数值本身的绝对值,反码:,正数:反码与原码相同,负数:符号位为,1,,其余位对原码取反,补码:,正数:原码、反码、补码相同,负数:最高位为,1,,其余位为原码取反,再对整个数加,1,原码,反码,补码,+7,00000111,00000111,00000111,-7,1,0000111,1,1111000,1,1111001,+0,00000000,00000000,00000000,-0,10000000,11111111,00000000,数的范围,01111111,11111111,(-127+127),01111111,10000000,(-127+127),01111111,10000000,(-128+127),(用一字节表示数),负数补码转换成十进制数:最高位不动,其余位取反加,1,例 补码:,11111001,取反:,10000110,加,1,:,10000111=-7,3.1 C,语言的数据类型,数据类型,基本类型,构造类型,指针类型,无值型(void),整型(int),字符型(char),实型(浮点型),枚举类型(enum),单精度型(float),双精度型(double),数组类型,结构体类型(struct),共用体类型(union),类型,符号,关键字,数的表示范围,所占位数,整型,字符型,实型,有,无,(,signed),int,16,-3276832767,(,signed),short,16,-3276832767,(,signed),long,32,-21474836482147483647,16,unsigned,int,065535,32,04294967295,unsigned,long,unsigned,short,16,065535,有,float,32,3.4e-383.4e38,有,double,64,1.7e-3081.7e308,有,char,8,-128127,无,unsigned char,8,0255,说明,:,数据类型所占字节数随机器硬件不同而不同,上表以,IBM PC,机为例,:,定义:用来标识变量、常量、函数等的字符序列,组成:,只能由,字母,、,数字,、,下划线,组成,且第一个字母必须是字母或下划线,大小写敏感,不能使用关键字,长度:最长3,2,个字符,命名原则:,见名知意,不宜混淆 如,l,与,I,o,与0,3.2,常量与变量,例:判断下列标识符号合法性,sum,Sum,M.D.John,day Date 3days,student_name,#33 lotus_1_2_3,char ab _above$123,标识符,3.2,常量与变量,3.2.1,常量,常量:,在程序运行过程中,其值不能被改变的量。常量可区分为不同类型。,1,直接常量,整型常量:,100,、,-88,、,0,等,实型常量:,10.5,、,-2.34,字符型常量:,a,、,A,、,5,(,其值为,ASCII,码值),以上均为直接常量。此外,C,语言中还有,符号常量。,三种形式:,十进制整数:由数字,0,9,和正负号表示,.,如,123,-456,0,八进制整数:由数字,0,开头,后跟数字,0,7,表示,.,如,0123,011,十六进制整数:由,0 x,开头,后跟,0,9,a,f,A,F,表示,.,如,0 x123,0Xff,例,30000,为,int,型,65536 为,long,int,型,整型常量的类型,根据其值所在范围确定其数据类型,在,整常量后加字母,l,或,L,,,认为它是,long,int,型常量,问题:,0123 =(),10,0 x123=(),10,0Xff =(),10,整型常量(整常数),表示形式:,十进制数形式:(必须有小数点)如,0.123,.123,123.0,0.0,123.,指数形式:(,e,或,E,之前必须有数字;指数必须为整数)如12.3,e3,123E2,1.23e4,e-5,1.2E-3.5,实型常量的类型,默认,double,型,在,实型常量后加字母,f,或,F,,,认为它是,float,型,实型常量(实数或浮点数),定义,:,用,单引号,括起来的单个,普通字符,或,转义字符,.,字符常量的,值,:该字符的,ASCII,码,值,=,|,&,),5.,赋值运算:(,=,),6.,条件运算符:(?:),7.,逗号运算符:(,),8,指针运算符:(*,&),9.,求字节数运算符,:(,sizeof,),10.,强制类型转换,:(,类型名,),11.,分量运算符,:(.-),12.,下标运算符,:(),3.8.2,算术运算符和算术表达式,1.,基本算术运算符,+,加法、取正。,如,a+3 ,+3,-,减法、取负。如,a-3,-9,-b,*,乘法运算符。如,3*5,,,a*b,/,除法运算符。,如,a/b,,,5/2,值为,2(,整数除,小数自动舍去,),5.0/2,值为,2.5,%,求余运算符。,只能用于整型数据。,如,5%3,值为,2 ,10%3,值为,1,2.,算术表达式和优先级与结合性,表达式:,用运算符将操作数连接起来的式子。,如:,a+10*b-f/d+a,运算符的优先级,:在表达式求值时按运算符优先级高低次序执行。*、,/,、,%,+,、,-,即先乘除,后加减。,较高级(3级),较低级(4级),结合性:,当操作数两边的运算符优先级相同时,按结合性确定处理顺序。,算术运算符的结合性为,“,自左至右,”,。称为,“,左结合性,”,。,例:,a+b-c,先处理,a+b,,,再进行,-c,的运算。,C,运算符,大部分处理顺序为,左,右,(,左,结合性,),,少部分具有右结合性(如赋值运算符)为,右,左,。,3.,强制类型转换运算符,强制类型转换运算符可,将一个表达式的值临时转换成所需数据类型,。,一般形式,:,(,类型名,)(,表达式,),其优先级为,2,级,高于 *、,/,、,%,。,例如:,(float)a ,(double)(x+y),与,(double)x+y,不同,注意:,强制类型转换只是得到所需类型的值而原变量的类型不变。,例,3.8,:,main()i=,(int)x;,float x;int i;,prinf(“x,=%f,i=%d”,x,i);,x=3.6;,结果:,x=3.600000,i=3 (,x,的类型没变,),4.,自增自减运算符,作用:使变量的值加,1,或减,1,。,+k,-k,:,在使用,k,之前使,k,值增,1,,,减,1,。,k+,k-,:,在使用,k,之后,使,k,值增,1,,,减,1,。,例:设,i=3;,j=+i;,先使,i,的值为,4,,然后,j,的值为,4,。,j=i+;j,的值为,3,,然后,i,的值为,4,。,printf(“%d,”,+i);,/*,结果显示:,4*/,printf(“%d”,i,+);,/*,结果显示:,3*/,注意:,该运算符,只能用于变量,,不能用于常量和表达式。,优先级为,2,级,高于*,,/,,,%,与取负号,“,-,”,同级。,结合性:,为自右至左。,如,:j=,i+,等价于,j=,(i+,),若,i,的原值为,3,则以上表达式为先用,i,值,得,j=-3,,,然后,i+1,得,i=4,。,int,i=3;,printf(“%d,%d”,i,i+);/*,结果显示:,4,3*/,printf,(),的求值顺序:从右至左。,3.9,赋值运算符及其表达式,1,赋值运算符:,“,=,”,作用:将一个数据赋给一个变量。如,a=3,优先级:,14,级,2,类型的转换,当,“,=,”,两边的数据类型不同时,系统会自动进行类型转换。如:,int i;i=3.8;,则实得,i=3,float d=23;23,将以浮点数形式存放在,d,中,。,int c=a;a,的,ASCII,码放,在,c,变量的低,8,位中。即,c=97,3.,复合赋值运算符,+=,、,-=,、*,=,、,/=,、,%=,,等等。,如,a+=3,等价于:,a=a+3,x*=,a-3,等价于:,x=x*(,a-3,),注意不要,错写,成:,x=,x*,a-3,4.,赋值表达式,一般形式:,右结合性,。如,a=b=5,等价于,a=(b=5),赋值表达式的值,就是,赋给,变量的,值,。,如,a=5,表达式的值是,5,,变量,a,的值也是,5,。,a=(b=4)+(c=6),其中表达式,b=4,的值是4,c=6,的值是6,a,的值是10。,整个表达式的值是,10,。,3.10,逗号运算符和逗号表达式,一般形式:,表达式,1,,表达式,2,优先级:最低(,15,级),例如:,3+5,,,3+6,求解过程:先求表达式,1,,再求表达式,2,。,整个,逗号表达式的值,是,表达式,2,的值,。,如:上例逗号表达式的值是,9,。,例:,a=5*3,a*4,其中,a=15,逗号表达式的值是,60,。,一个逗号表达式可以和另一个表达式组成一个新的表达式。,如:,(,a=5*3,a*4,),a+5,表达式值为,20,。,x=(a=3,6*3),结果,a=3,x=18,x=a=3,6*3,结果,a=3,x=3,本章小结:,1,掌握基本数据类型及其存储方式:,整型、实型、字符型,2,字符常量与字符串常量的区别。,3,变量的定义,初始化,赋值方法。,4,算术运算符,赋值运算符,逗号运算符的用法。,第三章结束,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

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

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

关于我们      便捷服务       自信AI       AI导航        抽奖活动

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

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

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

关注我们 :微信公众号    抖音    微博    LOFTER 

客服