day2---C语言运算符

一. 算数运算符

算术运算符就是一些普通的加减乘除,这里就不做过多的陈述了

加 : +

减 : -

乘 : *

除 : /

取余 : %(这个就是我们小学学的除法的余数)

二. 逻辑运算符

逻辑运算符有3种,分别是逻辑与(&&),逻辑或(||),逻辑非(!)

这里我讲解一个容易被忽略的点,就是逻辑与(&&)碰到了"0",就会被"阻断",什么叫做阻断呢,就是逻辑与(&&)后面的表示式或者其他的东西不会执行了,逻辑或(||)碰到了"1"会被"阻断",我接下来举个例子看一下就知道了。

#include<cstdio>
int main(){
    int a=10;
    int b=20;
    int c = 1;
    if (a>10 && c++){
        // 逻辑与(&&)碰到"0"被阻断,c++这段代码不会执行,所以c=1
        printf("c=%d\n",c);
    }
    printf("c=%d\n",c);

    if (a>1 || b++){
        // 逻辑或(||)碰到"1会被阻断",b++这段代码不会执行,所以b=20
        printf("b=%d\n",b);
    }
}

看上述代码,在第一个if语句中,由于逻辑与(&&)左边的是"0",所以直接被阻断,也就是说逻辑与(&&)后面的代码不会被执行了;在第二个if语句中,由于逻辑或左边的是"1",所以直接被阻断,也就是说逻辑或(||)后面的代码不会执行了;

三. 位运算符

位运算符有6种

位逻辑反 :~

位逻辑与 :&

位逻辑或 :|

位逻辑异或 :^

左移 :<<

右移 :>>

接下来我就来讲解一下这6中到底是个怎么回事呢?

首先我们要知道这个位运算都是来操作我们的二进制的

1. 位逻辑反 :顾名思义,就是将我们的二进制取反,0变成1,1变成0

2.位逻辑与 : 与逻辑与类似,只有两者都为1才会是1,如果有一个是0就是0

3.位逻辑或 : 与逻辑或类似,有一个为1就是1,如果两者都是0,结果就是0

4. 逻辑异或 :逻辑异或是如果两者相同就是0,不同也就是异结果是1。比如,1和1就是0,0和0就是0,1和0就是1

5. 左移 : 如果左移n,那么就是在一个二进制右边添加n个0,然后把最左边的n位去掉。

                 结论 :如果左移n位,这个数×2^{n}

6. 右移 :如果右移n,那么就是在一个二进制左边添加n个0,然后把最右边的n位去掉

                结论 :如果右移n为,这个数÷2^{n}

四. 三目运算符

<表达式1> ? <表达式2> : <表达式3>

如果表达式1为真,那么输出表达式2;

如果表达式1为假,那么输出表达式3

话不多说,直接上案例

五.逗号运算符

可以看到z的右边有一大堆东西,但是z的值是由括号里面最后边决定的,在这里说白了就是z=x+y;

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值