前言:这篇文章主要讲解一下C语言中常见的操作符的使用,做一下整理,便于日后回顾,同时也希望能帮助到大家。
个人简介:努力学习ing
CSDN主页愚润求学
每日鸡汤:念念不忘,必有回响!
一,操作符的分类
下面给出一些常用的操作符:
● 算术操作符:+-*/%
● 位移操作符:<>
● 位操作符: & | ^
● 赋值操作符:= += -= *= /= ···
● 单目操作符:! ++ — & * – + ~ sizeof(类型)
● 关系操作符:> >= = == !=
● 逻辑操作符:&&||
● 条件操作符:” />乘以2)
书写格式:
整形数据 << 左移位数
如:
5<<2 和 -5<<2
即:00000101<< 2,得 00010100(十进制的20)
11111011 << 2,得 11101100(十进制的 -20)
2)按位右移( >> )
位移规则:
左边用原来值的符号位填充(即负数补1,正数补0),右边抛弃
格式:
整形数据 >>左移位数
如:
5>>2 和 -5>>2
即:00000101>>2,得 00000001(十进制的1)
11111011 >>2,得 11111110(十进制的 -2)
注意:
1,都是对整型数据二进制的补码进行位移
2,对于移动的位数:不能是负数
3,位操作符
操作的对象都是整型数据的二进制的补码
1)按位与(&)
规则:
对应位,只要有0:结果就是0, 两个都是1:结果才是1
例如:
5&4相当于:
2)按位或( | )
规则:
对应位,只要有1:结果就是1, 两个都是0:结果才是0
例如:
5 | 4相当于:
3)按位异或( ^ )
规则:
对应位,相同则为0,不同则为1
例如:
5 ^ 4相当于
4)按位取反( ~ )
规则:
对应位,取相反的(即1变0,0变1)
例如:
4,赋值操作符
理清楚:赋值操作符最后的落脚点都在赋值
=的作用就是赋值,如:
a = 2; //意思是:把2这个值赋给a
+=-=*=/= 其实逻辑是一样的,这里举两个例子:
a += 2;等效于a = a + 2//意思是先进行a + 2的运算,再把所得的值赋给a
a *=2; 等效于a = a * 2//意思是先进行a * 2 的运算,再把所得的值赋给a
5,单目操作符
单目操作符的特点是:只有一个操作数,且运算优先级较高
ps:因为单目操作符里面的操作对象涉及很多其他知识,所以在此先不做过多讲解
6,关系操作符
关系操作符顾名思义是用来判断两个数之间的关系的,和数学中我们所用到的大于(>),大于或等于(>=)……使用理解上没有什么太大区别
值得一提的是:
1,判断两数是否相同要用(==),因为一个=的是赋值操作符
2,!= 的意思是:“不等于” ,如:a!=b 就是说:a的值不等于b的值
7,逻辑操作符
1)并且(&&)
(表达式1)&&(表达式2):需要&&左右两边都为真,才为真,只要有一个为假,则为假
注意短路:当第一个表达式1为假时,已经可以判断为假了,就不会再计算表达式2
2)或者(||)
(表达式1)||(表达式2):只要表达式1或者2有一个为真,就为真,只有都是假,才为假
注意短路:当第一个表达式1为真时,就可以判断为真了,就不会再计算表达式2
8,条件操作符
格式:
表达式1 ?表达式2:表达式3
规则:
先判断表达式1,如果为真,就执行表达式2,否则执行表达式3
例如:
a>b” />
参考:C 运算符优先级 – cppreference.com
我的分享也就到此结束啦
要是我的分享也能对你的学习起到帮助,那简直是太酷啦!
若有不足,还请大家多多指正,我们一起学习交流!嘿嘿,王子,公主请一键三连!(✪ω✪)
感谢大家的观看和支持!最后,☺祝愿大家天天开心!!!
念念不忘,必有回响!