学习笔记——运算符

我们先来介绍一下位运算

位运算

故事是这样的,蒟蒻今天开心的做到了2019年提高组D1T2,突然发现自己不知道异或运算是个什么东西,这放考场上不就当场凉凉。吓得写篇文章学习位运算。

类型

百度百科说有七种

含义 c++
按位与 a & b
按位或 a | b
按位异或 a^b
按位取反 ~a
左移b位 a<
带符号右移 a>>b
不带符号右移 a>>>b

具体是什么样子可以自行查看

运算优先级

原文网址:https://blog.csdn.net/qq_37746778/article/details/87451364

最高级

出现同级别运算符时的结合方向是从左往右

(下面级别没写结合顺序时,默认是从左往右)。

( ) 圆括号

[ ] 下标运算符号

-> 指向结构体成员运算符

. 结构体成员运算符

第二级 单目运算符

!、~、++、–、-、(类型)、*、&、sizeof。
这一级都是单目运算符号,这一级的结合方向是从右向左。

比如出现p++,这时和++同级别,先算右边,再左边。

所以p++等价于(p++),而不是(*p)++。

第三极 数学运算符

+、-、*、/、%

这一级都是算术运算符,结合顺序和数学学习中一致的,先乘除取余数,后加减。

第四级 左移右移

<<、>> 位运算时可能需要用到。

第五级 关系运算符

<、<=、>、>=、!=、==

这些运算符也称为关系运算符,其中<、<=、>、>=高于!=、==。

第六级 &,^, |

这三个符号也是位运算符号,其中内优先级,&>^>|。

例如 23|2^5=10111| 10^101=10111|110=10111=23

第七级

&&、|| 其中逻辑与的优先级大于逻辑或

第八级 条件运算符

?与: 也称为条件运算符号,是C语言中唯一的一个三目运算符,结合顺序是从右往左。

第九级 赋值运算符

=、+=、-+、*=、/=、%=,>>=、<<=、&=、^=、|=

结合顺序是从右往左

最低级 逗号运算符

逗号运算符也称为顺序求值运算符,在C语言中,运算级别最低。

总结

逗号运算符<赋值运算符<条件运算符<逻辑运算符<关系运算符<左移、右移运算符<算术运算符<单目运算符<括号运算符、成员运算符

你可能感兴趣的:(笔记)