[C语言]--操作符...

本文详细介绍了各类编程操作符,包括算术、移位、位、赋值、单目、关系、逻辑、条件操作符以及它们的优先级。特别讨论了移位操作符的左移与右移规则,以及位操作符如按位与、按位或和按位异或的应用。此外,还涵盖了赋值操作符的复合形式以及单目操作符如取反、自增和自减的用法。最后,概述了操作符的优先级规则,帮助理解表达式的计算顺序。
摘要由CSDN通过智能技术生成

操作符分类

1.算术操作符 2.移位操作符 3.位操作符 4.赋值操作符 5.单目操作符

6.关系操作符 7.逻辑操作符 8.条件操作符 9.操作符优先级

目录

​操作符分类

一:算术操作符

二: 移位操作符

<< 左移操作符

>>右移操作符

 三:位操作符

按位与 &

按位与 |

按位异或

四:赋值操作符

五: 单目操作符

六:关系操作符

七: 逻辑操作符

八: 条件操作符(三目操作符)

 九:优先级

 10》》要加油啊!!

一:算术操作符


对于算术操作符,大家从小学到大,那就是 + 加  - 减   * 乘   /除  %取余

想必这也不需要解释啦。

 注:

1. 除了 % 操作符之外,其他的几个操作符可以作用于整数和浮点数。
2. 对于 / 操作符如果两个操作数都为整数,执行整数除法。而只要有浮点数执行的就是浮点数除法。
3. % 操作符的两个操作数必须为整数。返回的是整除之后的余数。

二: 移位操作符


移位操作符 有 << 左移操作符 , >> 右移操作符。

对于移位操作符,操作的是二进制位。而且必须整数

补码:在计算机系统中,数值一律用补码来表示和存储,其中最高位表示符号位,1表示负数,0表示正数。

正数的原反补相同。

负数:

反码:原码符号位不变,其他位取反。

补码:反码加1。

<< 左移操作符

移位规则:左边抛弃(整体左移一位) 右边补0

int a = 10;
//二进制 
a<<1
//00000000000000000000000000001010
//00000000000000000000000000010100

>>右移操作符

移位规则

1. 逻辑移位
左边用0填充,右边丢弃
2. 算术移位
左边用原该值的符号位填充,右边丢弃

逻辑位移
int a = 10;
//00000000000000000000000000001010
a>>1
//00000000000000000000000000000101
int a = -1;
//11111111111111111111111111111111
a>>1
// 1算术  11111111111111111111111111111111
// 2逻辑  01111111111111111111111111111111

注 :

对于移位操作符 不移动负数位,这是标准未定义的。 a<<-1 这是错的

 三:位操作符


按位与 &

按位或 |

按位异或 ^

:操作数必须是整数

按位与 &

比较二进制位,同时为1才为1其余为0

举例
A   01010
B   10110
A&B 00010

按位与 |

比较二进制位,只要有1就为1 其余为0

举例
A   010101
B   101001
A|B 111101

按位异或

比较二进制位,相同为0不同为1

举例
A   1101101
B   1001011
A^B 0100110

四:赋值操作符


赋值操作符  = 

复合赋值操作符  +=     -=     *=     /=     %=     >>=     <<=     &=     |=      ^=

int a =10;
a = a+1;
a += 1;//复合运算

五: 单目操作符


!
-
+
&
sizeof
~
--
++
逻辑反操作
负值
正值
取地址
操作数的类型长度(以字节为单位)
对一个数的二进制按位取反
前置、后置--
前置、后置++

*                    间接访问操作符(解引用操作符)
(类型)            强制类型转换

 逻辑反操作符 将 假变为真 真变为假 如 !(a==0)

前置后置-- ++;

前置 先加减再使用 后置 先使用再减加

六:关系操作符


>
>=
<
<=
!= 用于测试“不相等”
== 用于测试“相等”

七: 逻辑操作符


逻辑与 &&  两个数中有一个为假,则判断为假。

逻辑或 || 两个数中有一个为真,则判断为真。

(a && b) (a || b)

八: 条件操作符(三目操作符)

a ? : b : c      a为真执行b为假执行c

 九:优先级

操作
描述用法示例结果类 型结合 性是否控制求值 顺序
()聚组(表达式)与表达
式同
N/A
()函数调用rexp(rexp,...,rexp)rexpL-R
[ ]下标引用rexp[rexp]lexpL-R
.访问结构成员lexp.member_namelexpL-R
->访问结构指针成员rexp->member_namelexpL-R
++后缀自增lexp ++rexpL-R
--后缀自减lexp --rexpL-R
!逻辑反! rexprexpR-L
~按位取反~ rexprexpR-L
+单目,表示正值+ rexprexpR-L
-单目,表示负值- rexprexpR-L
++前缀自增++ lexprexpR-L
--前缀自减-- lexprexpR-L
*间接访问* rexplexpR-L
&取地址& lexprexpR-L
sizeof取其长度,以字节
表示
sizeof rexp sizeof(类
型)
rexpR-L
(类
型)
类型转换(类型) rexprexpR-L
*乘法rexp * rexprexpL-R
/除法rexp / rexprexpL-R
%整数取余rexp % rexprexpL-R
+加法rexp + rexprexpL-R
-减法rexp - rexprexpL-R
<<左移位rexp << rexprexpL-R
>>右移位rexp >> rexprexpL-R
>大于rexp > rexprexpL-R
>=大于等于rexp >= rexprexpL-R
<小于rexp < rexprexpL-R
<=小于等于rexp <= rexprexpL-R
 
操作
描述用法示例结果类 型结合 性是否控制求值 顺序
==等于rexp == rexprexpL-R
!=不等于rexp != rexprexpL-R
&位与rexp & rexprexpL-R
^位异或rexp ^ rexprexpL-R
|位或rexp | rexprexpL-R
&&逻辑与rexp && rexprexpL-R
||逻辑或rexp || rexprexpL-R
? :条件操作符rexp ? rexp : rexprexpN/A
=赋值lexp = rexprexpR-L
+=以...加lexp += rexprexpR-L
-=以...减lexp -= rexprexpR-L
*=以...乘lexp *= rexprexpR-L
/=以...除lexp /= rexprexpR-L
%=以...取模lexp %= rexprexpR-L
<<=以...左移lexp <<= rexprexpR-L
>>=以...右移lexp >>= rexprexpR-L
&=以...与lexp &= rexprexpR-L
^=以...异或lexp ^= rexprexpR-L
|=以...或lexp |= rexprexpR-L
逗号rexp,rexprexpL-R

 10》》要加油啊!!

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

西.北.风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值