学习C语言的操作符

小伙伴们大家好呀,因为最近开始学习另一个方向的新内容,这两个同时进行,发布的可能会有些晚,但是能协调过来,不会影响,大概和之前一样,话不多说,开始今天的学习。


本篇使用方法:

一  ~  四  按照运算符的优先级来写,五是对前面未提到的一些内容做补充, 一  ~  三 和 五 并不冲突,大家可以根据自己喜好来看。

一、单目运算符

++:有a++和++a之分
 -- :有a--和--a之分
  * :取值(和指针有关,后续写到指针会说明用法)
 & :取地址
 !:逻辑非
 ~ :按位取反
 -  :负号运算符

PS:这里和大家说一下大家可能不太了解的

1.++ 和 --    如果是 b = a++ 或 b = a-- ,那么就是先赋值再运算(只要把原先a赋值给b,a就  加/减  1),如果是 b = ++a 或 b = --a ,那么就是先运算再赋值(把  加/减  1后的结果赋值给b)

2. &   这个符号,我们经常在输入见到,实际它的意思就是你要取一个空间地址来存放你输入的值

3.!  在计算机中一般 0 为假,非 0 为真,而逻辑非表示语句为真返回 0 ,语句为假返回 1 ,真假相反

4.~   跳到本文最后观看(因为这个牵扯到二进制,本文顺序按照优先级书写,这个符号和后面的几个符号配合一起看,效果会更好)

二、双目运算符

+           -          *          /           %
加        减        乘        除        取余

PS:上述加减乘除取余的优先级为 ( * = / = % ) >( + = - ) 

 <<            >>
左移        右移

 PS:左移右移跳到本文最后观看

  >                 >=                    <=                <             ==              !=
大于         大于等于         小于等于         小于         等于         不等于 

PS:本行较为常见,就不在说明(就是比大小) 

      ^                    |               &&                || 
按位异或        按位或        逻辑与        逻辑或

1.跳到本文最后观看

2.跳到本文最后观看

3. &&   左右语句都为真时,返回 1 ,并且如果前面有一个语句为假,后面不做判断

4.  ||     左右语句有一个真就返回 1 ,并且如果前面有一个语句为真,后面不做判断

三、三目运算符 

?: 

这里它的意思是   表达式?如果表达式成立就输出这里: 如果表达式不成立就输出这里

四、其它

假设有两个变量a,b
=          赋值
/=         a/=b                等价于        a=a/b
*=         a*=b               等价于        a=a*b
%=       a%=b              等价于        a=a%b
+=        a+=b               等价于        a=a+b
-=         a-=b                等价于        a=a-b
<<=      a<<=b             等价于        a=a<<b
>>=      b>>=b             等价于        a=a>>b
&=        a&=b               等价于        a=a&b
^=         a^=b               等价于        a=a^b
|=          a|=b                等价于        a=a|b

五、解释上文跳到最后看的内容

 <<            >>                ~                 ^                   |                &
左移        右移        按位取反     按位异或        按位或        按位与

前提知识:我们知道计算机中的信息由二进制组成,有三种形式,那就是原码、补码和反码

原码:最高位是符号位,0代表正数,1代表负数(非符号位为该数字绝对值的二进制 -> 这里本篇不用这个)

反码:正数的反码为原码本身,负数的反码是对原码按位取反,两者最高位(符号位)不变。

补码:正数的反码补码为它本身,负数的补码为原码的反码+1

【eg】以8位举例

1. << 左移操作符 

 二进制整体向左移一位,左边的就去掉,右边补0

2.>>右移操作符

逻辑右移:左边用0填充,右边丢弃
 算术右移:左边用原该值的符号位填充(意思是原来是正数,结果还是正数;原来是负数,结果还是负数),右边扔掉 

3. ~ 按位取反

二进制 0 变 1 ,1 变 0

4. ^ 按位异或

两个整数的二进制,两个位不相同为 1 ,其它为 0 

5. | 按位或

两个整数的二进制,两个位有一个为 1 则为 1  ,其它为 0 

6.&按位与  

两个整数的二进制,两个位只有相同为 1 ,其它为 0 


今天学习内容就到此结束啦,是不是解决了平时看不懂代码的疑惑呢,学习是个缓慢的过程,希望和大家一起坚持,能多学一点是一点。

“认清明天的去向,不忘,昨天的来处” 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Re.不晚

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

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

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

打赏作者

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

抵扣说明:

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

余额充值