




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第三章数据类型运算符第1页,课件共64页,创作于2023年2月3.1数据与数据类型3.1.1什么是数据和数据类型
数据是程序加工、处理的对象,也是加工的结果。
数据类型是程序语言中具有同样的性质的数据集合.
整型 int(integer的缩写)
字符型
char(character的缩写)
单精度型
float
基本类型
实型(浮点型)
双精度型
double
数组类数据类型
构造类结构体struct共用体union枚举类enum
指针类
空类型
void第2页,课件共64页,创作于2023年2月3.2C语言的基本数据类型及其表示3.2.1常量与变量1.常量——在程序运行中其值不能被改变的量常量区分为不同类型。如
123,456:
整型常量
’a’,’A’,’b’,’1’,’0’:
字符常量123.0,3.5:实型常量
“123”,“A”:字符串常量第3页,课件共64页,创作于2023年2月例3_1已知圆半径r,求圆面积和周长的值。#defineπ3.14159main(){intarea,perimeter;intr;r=3;area=π*r*r;perimeter=2*π*r;printf(“area=%d\n”,area);printf(“perimeter=%d\n”,perimeter);}符号PI代替常量3.14159,
称为符号常量符号常量的定义是在编译预处理语句里进行的,称为宏定义符号常量一般用大写
符号常量在其作用域内值不能改变(不能被赋值)
PI=35;符号常量在编译时被常量替换2.符号常量——用一个标识符代表一个常量,提高程序的可修改性和灵活性。定义格式:#define标识符常量第4页,课件共64页,创作于2023年2月3.变量(1)变量:其值可以改变的量。在内存中占据存储单元,在该单元中存放变量的值,必须先定义,后使用。3num90_above***total房间名:变量名(标识符)房间内容:变量值程序里的一个变量可以看成是—个存储数据的容器,它的功能就是可以存储数据。第5页,课件共64页,创作于2023年2月变量的定义格式:类型说明符变量名表;定义的变量名称最好和存放数据的意义对应。例:inta,b,c;/*说明a,b,c为整型变量*/charcc;/*说明cc为字符变量*/doublex,y;/*说明x,y为双精度实型变量*/第6页,课件共64页,创作于2023年2月#definePRICE30main(){intnum,total;
num=3;
total=num*PRICE;printf(“total=%d\n”,total);num=4;total=num*PRICE;printf(“total=%d\n”,total);}90numtotal对变量的基本操作有两个:1.“赋值”:向变量中存人数据值。2.“取值”:取得变量当前值、以便在程序运行过程中使用。34120*同一个变量一旦重新赋值,原来的值就不再存在。第7页,课件共64页,创作于2023年2月3.2.2整型数据及其表示1.整型类型整型数据存储示意图:基本型属性_占据内存单元数属性2_数据最高位意义intshort2bytes(短)signed有符号long4bytes(长)unsigned无符号第8页,课件共64页,创作于2023年2月取值范围:数据类型占据字节数二进制位取值范围int2Bytes16-32768~32767(-215~215-1)short[int]signed[int]signedshort[int]unsigned[int]0~65535(0~216-1)unsignedshort[int]long[int]4Bytes32-2147483648~2147483647(-231~231-1)signedlong[int]unsignedlong[int]0~4294967295(0
~232-1)第9页,课件共64页,创作于2023年2月2.整型常量十进制:123,-456,0八进制:以0开头(零),01,0120123=(123)8=(83)10十六进制:以0x开头,0x123=(123)16=(291)10
0xF=(f)16=(15)10长整型常量:123L,-456l二进制位(bit):计算机中最小的存储信息单位字节(Byte):八个二进制位组成的存储单元,是计算机中最小存取信息单位机器字(word):计算机中存取信息的基本单位,不同的计算机系统它的长度是不同的第10页,课件共64页,创作于2023年2月补充:数的存放形式——补码1.正数不变2.负数各位取反后+1,符号位置1
(34)10=(00100010)2(-34)10=(1011101)2+1(11011110)2
②4bytes数据x补码=4294967295-x+1(-34)10补码:(4294967295-34+1)10=(4294967262)10=(ffffffdf)16=(11111111111111111111111111011110)2①2bytes数据x补码=65535-x+1(-34)10补码:(65535-34+1)10=(65502)10=(ffdf)16=(1111111111011110)2第11页,课件共64页,创作于2023年2月变量的定义格式:类型说明符变量名表;4.整型数据应用中的几个问题一般放在一个函数的开头部分3.整型变量第12页,课件共64页,创作于2023年2月问题1:c没有定义便使用;intc;问题2:c应为32770,但实际为–32766,发生溢出;问题3:c应为longint类型;longintc;第13页,课件共64页,创作于2023年2月3.2.3实型数据及其表示1.实型类型
实型数据是以浮点数形式存储的,在计算机中按指数形式。如图例:0.123456×10-224位(带符号)8位(带符号)(float)(double)(longdouble)第14页,课件共64页,创作于2023年2月2.实型常量十进制形式:由数字和小数点组成;如:0.123,0.0,-54.0指数形式:由十进制小数形式+指数;如:123e3,123E-2注:e或E的前后面须有数字
不合法的指数形式:e3,2.1e3.5,.e3,e在实数常量尾部用后缀符f(F)代表单精度实数(7位有效位),l(L)代表双精度实数(18—19位有效位);例:2.3f,-0.123f,2e-3f,-1.5e4f为单精度实常量1256.34L,-0.123l,2e3L为双精度实常量3.实型变量第15页,课件共64页,创作于2023年2月4.实型数据应用中的误差问题由于机器存储限制,会使实数产生误差理想输出:a=12345.6789,b=0.1234567891234567899e15实际输出:a=12345.678711,b=123456789123456.797000第16页,课件共64页,创作于2023年2月3.2.3字符型数据及其表示1.字符型数据字符型数据在计算机中存储的是ASCII码,占用1byte。字符“A”的存储形式实际上就是一个整型数65;它可以直接与整型数据进行算术运算、混合运算,与整型变量相互赋值,字符型数据以字符或整数两种形式输出。以字符形式:先将ASCII码值转换为相应的字符,再输出;以整数形式:直接将ASCII的值作为整数输出。第17页,课件共64页,创作于2023年2月\n换行(LF)\t横向跳格(HT)\b退格(BS)\v竖向跳格\f走纸换页(FF)\r回车(CR)\’单引号(‘)\\反斜杠字符(\)\”双引号(“)\0,空(不是‘0’)\101字符‘A’(八进制)\x41字符‘A’(十六进制)2.字符型常量:用单引号括起来的一个字符:
普通字符:‘a’,‘A’,’1’等(大小写不同)
转义序列:将反斜杠(\)后面的字符转变为另外的含义。是一种特殊的字符常量。用的最多3.字符型变量:类型名称——char:*错误的字符常量表示:‘\’,‘015’,‘\\n’,”A”,‘ab’第18页,课件共64页,创作于2023年2月“Howdoyoudo.”
“CHINA”
“$123.45”
“a”4.字符串常量:一对双引号括起来的字符序列注意:C规定:每个字符串结尾加一“字符串结束”(‘\0’)
——系统自动加上的;
“CHINA”:字符串如果需要存放在变量中,需用字符数组来存放(第7章)CHINA
\0字符串结束标志
‘a’与“a”不同a‘a’a
\0“a”第19页,课件共64页,创作于2023年2月5.字符数据的应用举例main(){inti;charc;i=‘a’;c=97;printf(“%c,%d\n”,c,c);printf(“%c,%d\n”,i,i);}输出结果:a,97a,97注意:在一定范围内通用(0----127)第20页,课件共64页,创作于2023年2月3.2.5指针型数据及其表示变量与地址的概念程序中:inti=12;
floatk;
内存中每个字节有一个编号-----地址内存编译或函数调用时为其分配内存单元变量是对程序中数据存储空间的抽象变量的地址….……...20002001200220050000200320043000i122000变量i_pointerk随机指针变量指针型数据:是一个变量在内存中所对应的存储单元的地址值。如2000,2002等,指针变量:用来存放另一存储单元的地址值。第21页,课件共64页,创作于2023年2月2.指针变量的定义合法标识符指针的目标变量的数据类型表示定义指针变量不是‘*’运算符例int
*p1,*p2;float*q;staticchar*name;注意:1、int*p1,*p2;与int*p1,p2;2、指针变量名是p1,p2,不是*p1,*p23、指针变量只能指向定义时所规定类型的变量4、指针变量定义后,变量值不确定,应用前必须先赋值格式:类型说明符*变量名;第22页,课件共64页,创作于2023年2月3.6.1
&与*运算符含义:
*取指针变量所指向单元的内容
&取内存变量的地址
互为逆运算特性:单目运算符优先级为2
自右向左结合inti;
int*pc;
pc-----指针变量,它的内容是地址量*pc----指针的目标变量,它的内容是数据&pc---指针变量占用内存的地址….……...200020010000….3000指针变量pc,用&pc表示地址3000i整型变量i用&i表示地址20002000通过pc=&i将地址2000存入pc的单元中12通过*pc=12存入变量i的单元中200012pci,*pc&pc&i可简单画为:第23页,课件共64页,创作于2023年2月3.2.6变量的初始化通常一个变量是先说明,然后再赋值给它。例:intx,y;x=10;b=20;C规定:可以在定义变量的同时使变量初始化,例:
floatx=123.45;/*说明x为实型量且赋初值为123.45*/
inta,c=10;/*说明整型变量a,c,并仅给c赋初值10*/
inta1=10,b1=6;/*说明整型变量a1,b1;分别赋不同初值*/
doublePai=3.14;/*说明Pai为双精度实型变量为赋初值为3.14*/
charch='a';/*说明字符变量ch,并赋初值为'a'*/注意:对几个变量赋同一个值,必须分别赋值例:inta=b=c=3;errorinta=3;b=3;c=3;ok
说明:变量初始化不是在编译阶段完成的而是在程序执行阶段执行本函数时赋以初值的例:inta=3;
inta;a=3;
例:inta,b,c=5;
inta,b,c;c=5;
第24页,课件共64页,创作于2023年2月变量初始化的应用举例main(){inta;intb;b=a+2;printf(“%d,%d\n”,a,b);
}注意:定义的变量在没有初始化之前有一个不确定值。a=3;第25页,课件共64页,创作于2023年2月3.3算术运算与赋值语句3.3.1c语言中的运算规则1、运算符
分类(按操作数个数分):
单目运算:一个运算符连接一个运算对象;(-a;!a;++a)
双目运算:一个运算符连接两个运算对象;(23+12)
三目运算:一个运算符连接三个运算对象;a<b?a=1:a=-1第26页,课件共64页,创作于2023年2月分类(作用):算术运算符 +-*/%自增自减运算符++--赋值与赋值组合运算符=+=-=*=/=%=<<=>>=|=&=^=关系运算符><==>=<=!=逻辑运算符 &&||!位运算符 |^&<<>>~条件运算符 ?:逗号运算符 ,指针运算符 *&求字节数运算符 sizeof强制类型转换运算符(类型)分量运算符 .->下标运算符 []其它 ()第27页,课件共64页,创作于2023年2月2、表达式算术表达式 a+b-c自增自减表达式i++--i关系表达式a!=b(a+b)>(a-b)逻辑表达式 a&&(b==c)!a字位表达式 a<<2a&b赋值表达式a=3a*=2a=b=6逗号表达式 (a+b,a-b)3、优先级和结合性(附录A)
优先级:同一表达式中不同运算符进行计算时的先后次序
结合性:针对同一优先级的多个运算符而言,指同一表达式中相同优先级的多个运算应遵循的运算次序。第28页,课件共64页,创作于2023年2月表达式运算时的关键问题:(1)算符优先极问题(不同级别算符的计算次序)(2)算符结合次序(优先级平级时的计算次序)(3)算符操作数个数(一目或二目算符)(4)算符对应操作数类型3.3.2算术运算符和算术表达式1、算术运算符第29页,课件共64页,创作于2023年2月说明:①“+”,“-”运算符——单目运算:取正、负值运算;优先级高
双目运算:加、减运算;优先级低②除法运算“/”——
整数(字符)相除结果是整型(商),小数部分全部舍去
实数相除,所得的商也为实数。例如:1/3=0只取结果的整数部分0,舍去0.33333315/4=3只取结果的整数部分3,舍去0.75
1.0/3=0.33333313/4.0=3.250000
整数相除时,若不能整除将造成误差,要避免整数直接相除。③模运算"%"也称为求余运算。要求两个运算对象都为整型,其结果是整数除法的余数。例如:
5%10=510%3=1-10%3=-1第30页,课件共64页,创作于2023年2月
算术运算符的优先级及结合性如下:例如表达式
x/(67-(12+y)*a)
的运算顺序是:2、算术表达式c语言的算术表达式由算术运算符、常数、变量、函数和园括号组成,其基本形式与数学上的算术表达式类似。例如:
3十512.34—23.65*2-5*(18%4+6)x/(67-(12+y)*a)第31页,课件共64页,创作于2023年2月带函数调用的算术表达式。以数学函数的调用为例,c语言把数学计算中常用的计算公式(或算法)抽象定义为一个个的函数,这些函数的集合构成了C语言的数学库(见附录c),在程序中用到相应的函数时只要直接调用即可。例如,数学表达式:sin(x)+cos(y/2)c语言算术表达式:sin(x)+cos(y/2)
函数库:(#include<math.h>)
例3-6下列数学表达式:对应的c语言算术表达式为:第32页,课件共64页,创作于2023年2月3.3.3自增、自减运算符(++、--)(1)
++i和i++
最后都使i=i+1,但顺序不同,意义不同例:inti=3,j;对于j=++i;相当于①i++;②j=i;
对于j=i++;相当于①j=i;②i++;(2)
++,--只能用于变量(不能用于常量和表达式)
++3,++(a+b),(x+5)++
×
++i(--i):先将i的值加(减)1,然后使用i
i++(i--):先使用i,然后将i的值加(减)1开始结果3i4j43i4j3(3)用于++,--运算的可以是有序类型的变量(4)
++,--的结合性是自右向左的。第33页,课件共64页,创作于2023年2月例题1:inti=3,k;k=(i++)+(i++)+(i++);则:k=?i=?相当于①k=i+i+i;k=9
②i++;i++;i++;i=6例题2:inti=3,k;k=(++i)+(++i)+(++i);则:k=?i=?相当于①i++;i++;i++;i=6②k=i+i+i;k=18例题3:若i=3则printf(“%d”,-i++);则:打印?;i=?
输出:-3(然后,i增值为4)例题4:若i=3则printf(“%d”,i+++++i);则:打印?;i=?1.i++
+++i----->取i的地址2.i+++++i----->i值加1为4
3.i+++
++i----->1的值(4)+2的值(4)得3的值8。输出:84.表达式计算完成后,求1.i++的i自加1。i增值为:5
一般写为:(i++)+(++i)。。第34页,课件共64页,创作于2023年2月
3.3.4赋值运算符和赋值表达式1、
赋值运算符(=)计算赋值运算符“=”右边表达式的值,并将计算结果赋给“=”左边的变量。2、赋值表达式:变量=表达式①计算赋值运算符右边“表达式”的值,②将计算结果赋值给赋值运算符左边的“变量”,③赋值表达式的值就是赋值运算符左边“变量”的值第35页,课件共64页,创作于2023年2月3、赋值运算符按自右至左结合顺序(右结合)例1:inta=2,b=3,c=4;a=b=c=51.a=b=c=5:c=5,表达式c=5值为52.a=b=c=5:b=5,表达式b=c=5值为53.a=b=c=5:a=5,表达式a=b=c=5值为5
例2:a=b=4+(c=5)1.a=b=4+(c=5):c=5,表达式c=5值为5
2.a=b=4+(c=5):表达式4+(c=5)值为93.a=b=4+(c=5):b=9,表达式b=4+(c=5)值为94.a=b=4+(c=5):a=9,表达式a=b=4+(c=5)值为9第36页,课件共64页,创作于2023年2月4、赋值时的类型转换
当赋值运算符两侧类型不一致,赋值时要进行类型转换。其转换工作由c编译自动完成。转换原则是以“=”左边的变量类型为准,即将“=”右边的值转换为与“=”左边的变量类型—致(类型转换)。
例intb=32769;inti=256;floata=3.5,a1;charc=‘A’;a1=i;i=a;c=i;
则i=3a=3.500000b=-32767a1=256.000000c=0①float→int直接舍去浮点数地小数部分(存储空间缩小)②int→float按浮点数相应有效位数补小数点后地有效0(扩大)③double→float截取前7位double数据给float变量(缩小)④int→char截取int数据地低8位给char变量(缩小)第37页,课件共64页,创作于2023年2月
3.3.5组合赋值运算符和组合赋值表达式1、组合赋值运算符
在赋值符(=)之前加上其它运算符构成组合运算符:
运算符=10种:+=,-=,*=,/=,%=
<<=,>>=,&=,^=,|=
2、组合赋值表达式
格式:变量名组合赋值运算符表达式
功能:变量名=变量名运算符表达例:a+=3a=a+3x*=y+8x=x*
(y+8)=右边为一整体,而不等于x=x*y+8第38页,课件共64页,创作于2023年2月5a=55c=5,b=c(5),a=b(5)11c=6,a=11(5+6)10b=4,c=6,a=b+c=4+6=1024-12a-=a*a(a=3-3*3=-6)a+=-6(a=a+a=-12)3、
赋值运算符按自右至左结合顺序表达式表达式值各变量值求解过程a=5a=b=c=5a=5+(c=6)a=(b=4)+(c=6)a*=3+5a+=a-=a*ainta=3,b,c;第39页,课件共64页,创作于2023年2月a=b=d=x=y=a=c=*课后作业例:inta=3,b,d=012;charc;floatx,y;
表达式各变量的值1)a=2.82)b=3+d++3)x=3.6+3/54)y=(d=4,d+2,d--)5)a+=a-=a*=a6)c=‘d’-27)数学表达式,用C语言表达式表达正确的是:(1)a/(b+c)*d(2)a/(b+c)*1/d(3)a/(c+b)/d(4)a/d/(b+c)a(b+c).d第40页,课件共64页,创作于2023年2月3.4.1关系运算符与关系表达式
1关系运算符优先级相同(高)优先级相同(低)同级左结合3.4关系运算符和关系表达式<小于<=小于等于>大于>=大于等于==等于!=不等于关系表达式格式:表达式1关系运算符表达式2例:3>45>=4x>x+1关系表达式的值:“真”——条件满足,用1表示
“假”——条件不满足,用0表示第41页,课件共64页,创作于2023年2月例:若a=3,b=2,c=1a>b(a>b)==cb+c<ad=a>bf=a>b>c
‘c’>’d’值“真”1“真”1“假”0d=1f=0“假”0(高)(低)优先次序:算术运算符关系运算符
赋值运算符例:c>a+b
c>(a+b)a>b!=c
(a>b)!=ca==b<c
a==(b<c)a=b>c
a=(b>c)如何表示:0<=x<=20?第42页,课件共64页,创作于2023年2月3.4.2逻辑运算符和逻辑表达式1逻辑运算符和逻辑表达式&&逻辑与:双目运算符
例:(a>b)&&(x>y)||
逻辑或:双目运算符
例:(a>b)||(x>y)!逻辑非:一目运算符例:!
(a>b)逻辑运算“真值表”aba&&ba||b!a!b真1真1真1真1假0假0真1假0假0真1假0真1假0真1假0真1真1假0假0假0假0假0真1真1a和b可以是一个变量、常量或运算表达式第43页,课件共64页,创作于2023年2月运算符种类优先次序
!非算术运算符关系运算符
&&
||赋值运算符高低111110(a>b)&&(x>y)a>b&&x>y(y||b)&&(y||b)y||b&&y||b!a||a>ba>=10&&b&&x++a>=10||b||x++++a||y&&++x例:inta=3,b=1,x=2,y=0;逻辑表达式值说明:(1)逻辑运算结果:只能为“真”(1)或“假”(0),不可能是其它数值11第44页,课件共64页,创作于2023年2月(2)逻辑表达式中的运算对象(操作数)可以是0(“假”)或任何非零的数值(“真”)111301自左至右扫描例:
5>3&&2||8<4-!0(3)逻辑表达式求解并非一定要所有的逻辑运算符都被执行,会出现“短路”现象例:设a=1,b=2,c=3,d=4,m=1,n=1(m=a>b)&&(n=c>d)00001mn第45页,课件共64页,创作于2023年2月例:inta=2,b=3,c=0,d=4;
a++&&b++;c++&&d++;a=3b=40c=1d=4例:inta=2,b=3,c=0,d=4;
a++||b++;c++||d++;a=3b=31c=1d=5第46页,课件共64页,创作于2023年2月(4)逻辑表达式的应用例1:判别某一年year是否闰年。①能被4整除,但不能被100整除:
或②能被400整除:闰年条件:例2:写出判断变量C的值是否为……的条件表达式
小写字母
数字字符
被3除余2且被5除余1
奇数
偶数c>=‘a’&&c<=‘z’
c>=‘0’&&c<=‘9’c%3==2&&c%5==1c%2==1或c%2c%2==0或!(c%2)year%4==0且year%100!=0year%400==0(year%4==0&&year%100!=0)||year%400==0第47页,课件共64页,创作于2023年2月例3、写出判断点在图形内的条件表达式答案:x>=-1&&x<=1&&y>=-1&&y<=1(0,1)(1,0)(-1,0)(0,-1)答案:x<4&&x>-4答案:x<-4||x>4例4、把下面的数学表达式转化成C语言表达式
|x|<4
|x|>40=<
x<=20答案:x>=0&&x<=20第48页,课件共64页,创作于2023年2月3.4.3条件运算符与条件表达式1、形式:条件表达式
?表达式1
:表达式2
条件运算符:三目运算符(三个操作对象)2、执行顺序:先计算条件表达式的值,若值为非0,则计算表达式1的值,并将表达式1的值作为整个条件表达式的结果;若条件表达式的值为0,则计算表达式2的值,并将表达式2的值作为整个条件表达式的结果3、优先级算术运算符关系运算符逻辑运算符条件运算符赋值运算符高低max=(a>b)
?a
:b(a>b)?a+b:a-b第49页,课件共64页,创作于2023年2月4、结合方向:自右至左a>b?a:c>d?c:d等同于
a>b?a:(c>d?c:d)若a=1,b=2,c=3,d=4,有:4例:求一个数的绝对值:例:将小写字母转换成大写:x=x>=0?x:-x;c=(c>=’a’&&c<=‘z’)?c-32:c;第50页,课件共64页,创作于2023年2月3.5位运算应用:许多计算机硬件设备的状态信息通常是用二进制串表示的,则对硬件设备进行操作,也要送出一个二进制位串的方式发出的命令。3.5.1位运算符一个二进制位只能取值为0或者1;位运算的运算对象只能是整型(int)或字符型(char)的整数;位运算是对运算量的每一个二进制位分别进行操作的;操作符和优先级:优先级相同同级左结合~按位求反<<按位左移>>按位右移&按位与^按位异或|按位或高低第51页,课件共64页,创作于2023年2月3.5.2按位逻辑运算1.按位与──&
(1)格式:x&y
(2)规则:对应位均为1时才为1,否则为0:3&9=1。
例:c=a&b
a:10101001
0101
0111
&b:00000000
1111
1011
c:00000000
0101
0011
(3)用途:将指定位&0,实现清0以屏蔽原先的数据;(例3-11)
将指定位&1,保留原数据对应位
(例3-12)2.按位或──|
(1)格式:x|y
(2)规则:对应位均为0时才为0,否则为1:3|9=11。例:c=a|ba:10101001
01010111 |b:11111111
11111011c:11111111
11111111(3)用途:将指定位|1,实现置1;
(例3-13)第52页,课件共64页,创作于2023年2月3.按位异或──^(1)格式:x^y(2)规则:对应位相同时为0不同时为1:
0^0=0,0^1=1,1^0=1,1^1=1例:c=a^ba:1010100101010111^b:0110000011111011c:1100100110101100
(3)用途:将指定位^1,实现使特定位翻转其余位不变;(例3-14)4.按位取反──~(1)格式:~x(2)规则:各位翻转,即原来为1的位变成0,原来为0的位变成1;例:c=~a~a:00000000000001117
c:1111111111111000
-8的补码特点:按位求反=整数求负-1注意:对c=-a有对c=!a有c=-7c=0第53页,课件共64页,创作于2023年2月3.5.3移位运算1.按位左移──<<(1)格式:x<<位数(2)规则:使操作数的各位左移,低位补0,高位溢出:例:5<<2=20即:00000101
左移2位:
0000010100
结果为202.按位右移──>>(1)格式:x>>位数(2)规则:使操作数的各位右移,移出的低位舍弃;高位:1)对无符号数和有符号中的正数,补0;2)有符号数中的负数,补1。例:5>>2=1即:00000101
右移2位:
0000000101
例:-5>>2=-2即:11111011
右移2位:
1111111010结果为1结果为-2第54页,课件共64页,创作于2023年2月3.5.4位运算赋值运算符除按位取反运算外,其余5个位运算符均可与赋值运算符一起,构成复合赋值运算符:
&=、|+、^=、<<=、>>=如:x&=y相当于:x=x&yx<<=2x=x<<2x>>=3x=x>>3x^=5x=x^5第55页,课件共64页,创作于2023年2月例1a=3*5,a*4a=3*5,a*4,a+5例2x=(a=3,6*3)y=(x=123,x+x,x+=100-x)例3a=1;b=2;c=3;printf(“%d,%d,%d”,a,b,c);printf(“%d,%d,%d”,(a,b,c),b,c);//a=15,表达式值60//a=15,表达式值20//赋值表达式,表达式值18,x=18//表达式值100,y=100//1,2,3//3,2,33.6.1逗号运算符和表达式形式:表达式1,表达式2,……表达式n计算:先求解表达式1,再求解表达式2,……结合性:从左向右优先级:15逗号表达式的值:等于表达式n的值用途:常用于循环for语句中3.6其他运算第56页,课件共64页,创作于2023年2月3.6.5强制类型转换运算符(type)表达式用括号括起来类型转换方式:
自动转换:
2+3.5+‘a’
强制转换:其作用是进行数据类型的强制转换。
(type)是单目算符。
强制转换形式:
(类型名)(表达式)
注意:若为表达式,应该用括号括起来例:(double)a
(int)(x+y)
(float)(5%3)第57页,课件共64页,创作于
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《婴幼儿常见疾病的识别与预防》课件-婴幼儿生长发育
- 2025劳动者劳务合同范本
- 2025关于海上货物运输租赁合同
- 2025年劳动合同试用期限是多久
- 2025年关于跨国公司合同范本
- 小学一年级教学设计改进后
- 2025年BIM工程师之BIM工程师题库检测试卷B卷附答案
- 《内分泌系统调节》课件
- 儿童攻击行为的临床护理
- 上海初一科学试卷及答案
- 电子书 -《商业的底层逻辑》
- 农贸市场消防应急预案演练总结
- 2023年湖北宜昌高新区社区专职工作人员(网格员)招聘考试真题及答案
- 外贸谈判知识分享课件
- 《患者疼痛管理》课件
- 基于AI人工智能的智慧园区融合感知平台建设方案
- JB T 7689-2012悬挂式电磁除铁器
- 课件-错账更正
- 现代汉语语料库词频表CorpusWordlist
- GB/T 5465.2-2023电气设备用图形符号第2部分:图形符号
- 学校德育活动安排表
评论
0/150
提交评论