• / 22
  • 下载费用:16 金币  

第2章运算符和表达式

关 键 词:
运算符和表达式 运算符与表达式
资源描述:
新航线 http://info.sicau.edu.cn 新航线 第二章 运算符与表达式 http://info.sicau.edu.cn 四川农业大学计算机系 新航线培训 2.1 C语言运算符简介 初初等运算符等运算符 ()()[ ] [ ] - - . . 1 1 自左至右自左至右 (一)(一)单目运算符单目运算符! ~ ++ -- - (! ~ ++ -- - (类型类型) * printf(“去掉个位后的数=%d“,a/10); printf(“\n去掉个位和十位后的数=%d“,a/100); printf(“\n得到个位的数=%d“,a%10); printf(“\n得到个位和十位的数=%d\n“,a%100); } “%d”为格式符,表示:屏 幕输出显示时出现“%d”的 地方用逗号后面的一个整数 值替换。 http://info.sicau.edu.cn 四川农业大学计算机系 新航线培训 v自增自减运算符 2.2算术运算符和算术表达式 作用:使变量的值增1或减1。 前置: (先执行i=i+1或i=i-1,再使用i值) 如:i=1;a=++i;a=2;(i=2) i=1; a=--i; a=0; (i=0) 后置: (先使用i值,再执行i=i+1或i=i-1) 如: i=1;a=i++;a=1;(i=2) i=1;a=i--;a=1;(i=0) ++ -- 不能用于常量和表达式 如:5++,(a+b)++ #include main() { int a,i=1; a=++i; printf(“前置时:a=%d i=%d“,a,i); i=1; a=i++; printf(“\n后置时:a=%d i=%d\n“,a,i); } http://info.sicau.edu.cn 四川农业大学计算机系 新航线培训 2.3赋值运算符和赋值表达式 简单赋值运算符简单赋值运算符 = = 如:如:a=9a=9 复合赋值运算符:复合赋值运算符: += -= *= /= %= = &= ^= |=+= -= *= /= %= = &= ^= |= 例:例:a a++=5 =5 -- a=a a=a++ a*=ca*=c++5 5 -- a=a*(c+5) a=a*(c+5) = =左侧必须是变量,不能是常量或表达式左侧必须是变量,不能是常量或表达式 结合方向:自右向左结合方向:自右向左 例:int x,y; x=3;y=5; 表达式 x%=y/=2的值为? x%=y/=2x%=y/=2 先算先算y/=2y/=2  y=5/2 y= 2y=5/2 y= 2 再算再算 x%=2 x%=2  x=3%2 x=1 x=3%2 x=1 http://info.sicau.edu.cn 四川农业大学计算机系 新航线培训 2.3赋值运算符和赋值表达式 求表达a+=a-=a*=a的值,其中a的初值12 。 分析:先算a*=a - a=a*a=144(a的值已经被修改为144 ) 再算 a-=a*=a 因为a*=a的值为144 所以化简为 a-=144 -a=a-144=0(a的值已经被修改为144) 最后算a+=0 所以 表达式a+=a-=a*=a的值为0 http://info.sicau.edu.cn 四川农业大学计算机系 新航线培训 v赋值运算中的类型转换 2.3赋值运算符和赋值表达式 (1)当实型数据赋值给整型变量时,将实型数据的小数部分 截断。 如int x;,执行“x=5.21;”后,x的值为5。 (2)当整型数据赋值给实型变量时,数值不变,但以浮点数 形式 存储到实型变量中。 如float x=45; 输出x 的结果为45.000000。 (3)当整型、短整型、长整型数据赋值给一个char类型变量 时,将其低8位原封不动地送到char类型变量中(即截断)。 http://info.sicau.edu.cn 四川农业大学计算机系 新航线培训 2.4逗号运算符和逗号表达式 v逗号运算符(,)和逗号表达式 一般形式为 表达式1,表达式2,表达式3,…,表达式n 逗号表达式逗号表达式的值:的值:等于表达式等于表达式n n的值的值 如:x=(7+8,9,80) x的值为80 (x=7+8,9,80) x的值为15 括号内的值为80 http://info.sicau.edu.cn 四川农业大学计算机系 新航线培训 2.4 位运算 位运算就是指对存储单元二进制位的运 算,只能对整型或字符型数据进行位运算只能对整型或字符型数据进行位运算 ,不能用于实型数据。,不能用于实型数据。 http://info.sicau.edu.cn 四川农业大学计算机系 新航线培训 “按位与”运算符(&) 1 1)规则:)规则: 参与运算的两数(负数以补码方式出现)参与运算的两数(负数以补码方式出现)各对应的二各对应的二 进位相与进位相与,只有对应的两个二进位均为,只有对应的两个二进位均为1 1时,结果时,结果 位才为位才为1 1,否则为,否则为0 0,它是双目运算符。,它是双目运算符。 即:即:0&0=00&0=0;;0&1=00&1=0;;1&0=01&0=0;;1&1=11&1=1。。 例如:例如: 9&59&5可写算式如下:可写算式如下: 9 9的二进制:的二进制: 0 0 0 0 1 0 0 10 0 0 0 1 0 0 1 5 5的二进制:的二进制: 0 0 0 0 0 1 0 10 0 0 0 0 1 0 1 & _____________& _____________ 0 0 0 0 0 0 0 10 0 0 0 0 0 0 1 可见可见9&5=19&5=1。。 http://info.sicau.edu.cn 四川农业大学计算机系 新航线培训 “按位与”运算符(&) --9&9&--5 5可写算式如下:可写算式如下: --9 9的二进制补码:的二进制补码: 1111111111111111 1 1 1 1 0 11 1 1 1 1 1 0 11 1 --5 5的二进制补码:的二进制补码: 1111111111111111 1 1 1 1 1 01 1 1 1 1 1 1 01 1 & _________________ & _________________ -13-13的二进制补码的二进制补码 1 1 1111111 1111111 1 1 1 1 0 01 11 1 1 1 0 01 1 可见-9&-5=-13。 ((2 2)特殊用途:)特殊用途: 清零、取指定位清零、取指定位 补码:存放负数的方法。 表示方式:先将负数取绝对值后再转换为二进制,然后将二进制按位求反再 加一。 http://info.sicau.edu.cn 四川农业大学计算机系 新航线培训 ““按位或按位或””运算符(运算符(| |)) ((1 1)规则)规则 参与运算的两数(负数以补码出现)各对应参与运算的两数(负数以补码出现)各对应 的的二进位相或二进位相或(即逻辑加)。只要对应的两个二进(即逻辑加)。只要对应的两个二进 位有一个为位有一个为1 1时,结果位就为时,结果位就为1 1,它是双目运算符。,它是双目运算符。 即:即:0|0=00|0=0;;0|1=10|1=1;;1|0=11|0=1;;1|1=11|1=1。。 例如:例如:9|5 9|5 ::0 0 0 0 1 0 0 10 0 0 0 1 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 1 | _________________ | _________________ 0 0 0 0 1 1 0 1 ( 0 0 0 0 1 1 0 1 (十进制十进制13)13) 可见可见9|5=139|5=13。。 http://info.sicau.edu.cn 四川农业大学计算机系 新航线培训 “按位异或”运算符(^) ((1 1)规则)规则 参与运算的两数(负数以补码出现)各对应的参与运算的两数(负数以补码出现)各对应的二进位二进位 相异或相异或,当两对应的二进位相异时,结果为,当两对应的二进位相异时,结果为1 1,它是双,它是双 目运算符。即:目运算符。即:0^0=00^0=0;;0^1=10^1=1;;1^0=11^0=1;;1^1=01^1=0。。 例如:例如:9^5 9^5 :: 0 0 0 0 1 0 0 10 0 0 0 1 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 1 ^_____________ ^_____________ 0 0 0 0 1 1 0 0 ( 0 0 0 0 1 1 0 0 (十进制十进制12) 12) 可见可见9^5=129^5=12。。 http://info.sicau.edu.cn 四川农业大学计算机系 新航线培训 “求反”运算符 (~) 1 1)规则)规则 对参与运算的数的各二进位对参与运算的数的各二进位按位求反按位求反,它,它 是单目运算符,具有右结合性。是单目运算符,具有右结合性。 即:即:~ ~0=10=1;;~1=0~1=0。。 例如:~例如:~9 9的运算为的运算为 00000000 00000000 0000100100001001 ~------------------ ~------------------ 11111111 11111111 11110110 11110110 http://info.sicau.edu.cn 四川农业大学计算机系 新航线培训 “左移”运算符() ((1 1)规则)规则 二进位全部二进位全部右移若干位右移若干位,,“ “””右边的数右边的数 指定移动的位数。指定移动的位数。 ((2 2)特殊用途)特殊用途 右移右移1 1位相当于该数除以位相当于该数除以2 2;右移;右移n n位相位相 当于该数除以当于该数除以2 2 n n 。。 http://info.sicau.edu.cn 四川农业大学计算机系 新航线培训 “右移”运算符() ((3 3)说明)说明 对于有符号数,在右移时,符号位将随同移动。对于有符号数,在右移时,符号位将随同移动。 当为正数时,最高位补当为正数时,最高位补0 0;而为负数时,符号位为;而为负数时,符号位为1 1,, 最高位是最高位是补补0 0还是补还是补1 1取决于计算机系统的规定取决于计算机系统的规定。移入。移入 0 0的称为的称为““逻辑右移逻辑右移””;移入;移入1 1的称为的称为““算术右移算术右移””。。 我们可以通过编写程序来验正所使用的系统是采用我们可以通过编写程序来验正所使用的系统是采用““ 逻辑右移逻辑右移””还是还是““算术右移算术右移””。。很多系统规定为补很多系统规定为补1 1 ,即,即““算术右移算术右移””(vc(vc也是也是) )。。 如:如: a: a: 10010111 10010111 1110110111101101 a1: a1: 0 01001011 11110110 ( 1001011 11110110 ( 逻辑右移逻辑右移) ) a1: a1: 1 11001011 11110110 ( 1001011 11110110 ( 算术右移算术右移) ) http://info.sicau.edu.cn 四川农业大学计算机系 新航线培训 位复合赋值运算符 运算符运算符名称名称例子例子等价于等价于 &=&=位与赋值位与赋值a&=ba&=ba=a&ba=a&b |=|=位或赋值位或赋值a|=ba|=ba=a|ba=a|b ^=^=位异或赋值位异或赋值a^=ba^=ba=a^ba=a^b ==右移赋值右移赋值a=ba=ba=aba=ab ==左移赋值左移赋值a=ba=ba=aba=ab
展开阅读全文
  麦档网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
0条评论

还可以输入200字符

暂无评论,赶快抢占沙发吧。

关于本文
本文标题:第2章运算符和表达式
链接地址:https://www.maidoc.com/p-15695675.html
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

[email protected] 2018-2020 maidoc.com版权所有  文库上传用户QQ群:3303921 

麦档网为“文档C2C模式”,即用户上传的文档所得金币直接给(下载)用户,本站只是中间服务平台,本站所有文档下载所得的金币归上传人(含作者)所有。
备案号:蜀ICP备17040478号-3  
川公网安备:51019002001290号 


收起
展开