C语言从零开始3

运算符与表达式

C语言的各种运算都是在表达式中完成的。表达式是由运算符将各种类型的变量,常量,函数等运算对象 按一定的语法规则连接而成的式子,它描述了一个具体的运算过程。

运算符的优先级和结核性

优先级:即在执行表达式时,各运算运行的先后顺序
结核性:即同一优先级运算的方向

算术运算符和算术表达式
算数运算符
++ 自加 优先级2
-- 自减 优先级 2  右结合性	
-  负号 优先级2

* 乘号 优先级3
/ 除号 优先级3   左结合性
% 求余 优先级三

+ 加号 优先级4
                 左结合性
- 减号 优先级4

说明:求余运算的数据必须都是整形数据,且余数的符号与只分子的符号一致

算术表达式

1.由算术运算符,括弧,内部函数以及数据组成的式子
2.算术表达式中不能出现C语言字符集意外的字符
3.没有乘方运算符,要计算a的三次方,aaa或pow(a,3)

赋值表达式和赋值运算符
简单的赋值运算符记为“=”,用=连接的式子称为赋值表达式
赋值:	

实型赋值整型,舍弃小数部分 整型赋值实型,整数部分不变,增加小数部分
字符型赋值整型,由于字符型为一个字节,而整型位两个字节,故将字符型的ASCLL的码 放到整型的后八位中,前八位位0 整型赋值字符型,会出现数据流失

复合算数赋值

+=
-+
*=
/=
优先级14 右结合性

关系运算符与逻辑运算符
关系运算符
<      小于
<=     小于或等于           6级               左结合性
>      大于
>=     大于或等于

==     等于        七级              左结合性
!=    不等于

关系表达式的值是“真”和“假”,用“1”和“0”表示

逻辑运算符和逻辑表达式
逻辑运算符
!	逻辑取反,操作数为0,结果为1;操作数为1,结果为0         2级		 右结合性
&&	逻辑与,两操作数都为非0时,结果为1,否则为0;     		 11级        左结合性
||	逻辑或,当两操作数都为0时,结果为0;其他情况都去1    	 12级      	 左结合性
逻辑表达式具有短路特性
逗号运算符(优先级最低)

“,不仅是一个分隔符还是一个表达式
表达式1,表达式2,表达式3,…表达式n
其求值过程是从左到右以此计算表达式1,2,3…n,最好依照表达式n的值作为整个逗号表达式的值

位运算符

一个字节=8位(bit)

位运算符
~ 取反 2级

注意:按位取反是依照补码取反
如:8
二进制: 00001000
补码 : 00001000
按位取反 : 11110111
转换为原码:
转换为反码:10001000
转换为原码:10001001=>10进制-9
负数同理

& 按位与 8级

参与运算的对应位均为1其结果位1,否则为0
在这里插入图片描述

按位或

参加运算的两个运算量相对应位中有一个位1,结果位1,否则位0
在这里插入图片描述

~按位异或

参加运算的两运算量相异时为1,反之为0
在这里插入图片描述

<<左移运算

把”<<“左边的运算数的各二进制位全部左移,由”<<“右边的数指定移动的位数,并且高位丢弃,低位补0
在这里插入图片描述

>>右移运算

把”>>‘左边的二进制全部右移,由“>>”右边的数字指定移动的位数。对于有符号位,右移时,符号位将随之移动。当为正数时,最高位补零。当为负数,最高位补0或补1取决于编译系统的规定在这里插入图片描述

复合运算符
 &=
<<=
>>=
|=
^=
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值