操作符上篇(c语言初阶-4)

目录

1.算数操作符

1.1  “ / ”操作符

 注意:

 1.2  “ % ” 操作符

     注意:

 2.移位操作符

2.1左移(<<)操作符

 2.2右移(>>)操作符

 注意:

 3. 位运算符

补充:权重

3.1 按位与运算符(&)

3.2 按位或运算符(|)

3.3 按位异或运算符(^) 

注意:

 实例运用:

1.交换两个整型变量(不创建临时变量)

 2.判断1的个数

 3.找两个整数中不同的位数 

4.赋值操作符(=)

注意:

5.复合运算符

6:关系操作符(> 、<  、==  、<=  、>=  、!= )

7.逻辑操作符

7.1逻辑与(&&)操作符

7.2逻辑或(  || )操作符

注意:

2. 注意区分逻辑操作符和按位操作符

实例:

1. 逻辑与的短路运算

2.逻辑或的短路运算



1.算数操作符

1.1  “ / ”操作符

        “ / ”操作符属于双目操作符,用于求商  

         当两个操作数均为整数且恰好可以除尽时,所得结果符合实际数学运算。

     当两个操作符均为整数且余数不为0时,所得结果为0向取整(取更接近于0的整数,即不进行四舍不入,直接舍掉小数)后的结果。

        如(-5)/ 2 实际为(-2.5),零项取整发现(-2)更为接近0,结果为(-2),或直接舍掉小数位(0.5),取结果(-2)。

   

      当操作数有负数时,结果不受影响,符合实际正负逻辑(当然还符合零项取整):

 注意:

1.分母不能为0

2.整数除法余数不为0:在除的同时,就已经去掉了小数点,即整数运算后结果为已经零向取整后的结果,然后该结果才以浮点型存储到变量中,小数位全为0。

 处理办法:将正数除法变为浮点数同整数的运算即可。

 1.2  “ % ” 操作符

        “ % ” 操作符属于双目操作符,进行取余运算

     注意:

       “ % ” 只能用于整型操作数,而不能进行浮点数的运算

 当其中一个操作数为负数时:

最后运算结果同第一个操作数的正负号相同。

 当操作数均为负数时:结果同样取第一个操作数的符号。

 2.移位操作符

2.1左移(<<)操作符

        左移后,左边最高位抛弃,右边最低位补0。        

 2.2右移(>>)操作符

        右移分为两种,一种是逻辑右移,一种是算数右移

算术移位:左边用该值得符号位填充,右边丢弃

逻辑移位:左边用0填充,右边丢弃

         结果为-1,因此我们可以发现该编译器进行右移运算采用的是算术右移,左边补符号位(符号位看自身类型,若为无符号数,补0,;若为有符号数且为负数,补1),右边丢弃。

 注意:

   a:移位操作数只能移位整型,左右操作数均不可为浮点数。

 

      b:移位运算符不能移动负数位,这种行为是标准未定义的  

 3. 位运算符

“ 位 ”指的是二进制位。

补充:权重

      权重就是指所占的比重,如期末考试在总分上的占比。

      如5——0000 0101 这8个bit位中,从右到左权重依次减小,即低位的权重小,高位的权重大。

      如低位的1代表 1*(2^0) =1;而高位的1代表的则是 1*(2^2)=4.

3.1 按位与运算符(&)

        “ & ”:相对应(权重相同)的二进制位若均为1,则结果为1,其它情况,结果均为0.

3.2 按位或运算符(|)

         “ | ”:相对应(权重相同)的二进制位若至少有一个为1,则结果为1,若均为0,则结果为0。

3.3 按位异或运算符(^) 

        " ^ ":相对应(权重相同)的二进制位相同则结果为0,相异则结果为1.

如下:

注意:

   a^a = 0;

   0^a = a;     

如下:

 

 实例运用:

1.交换两个整型变量(不创建临时变量)

 2.判断1的个数

         但很显然,上述方法对于有符号负数是不成立的,因为有符号负数右移采用的是算术移位,右边丢弃,左边补符号位,也就是1,如此while循环就会陷入死循环。

优化如下:

 3.找两个整数中不同的位数 

4.赋值操作符(=)

赋值操作符相信大家都有所了解,不过多赘述。

注意:

1.赋值操作符可以进行连等(链式赋值)

 2.注意初始化和赋值的区别

       初始化只能进行一次,会开辟空间。赋值能进行多次,只是修改原有空间里的值。

3.区分赋值(=)和等于(==)

5.复合运算符

(+= 、-=  、*=  、/=  、&=  、|=  、%= 、 >>= 、<<=  、^= ... )

6:关系操作符(> 、<  、==  、<=  、>=  、!= )

a:" != " 为不相等的判断 

b:注意“==”与“=”区别

7.逻辑操作符

         对逻辑结果进行操作的操作符。

7.1逻辑与(&&)操作符

        “ && ”,若两个操作数结果均为真,则结果为真。

7.2逻辑或(  || )操作符

        “||”,若两个操作数结果有一个为真,则结果为真;均为假,则结果为假。

注意:

1.操作符的短路运算

     “&&”两个从操作数从左往右进行判断,若左边表达式结果为假,则不再进行右边表达式的判断,直接的出结果为假。

    “||”中若左边结果为真,则不再执行右边表达式,得出总结果为真。

 

2. 注意区分逻辑操作符和按位操作符

        按位操作符是对二进制位的操作,而逻辑操作符是对逻辑结果的操作

实例:

1. 逻辑与的短路运算

2.逻辑或的短路运算

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

鲸落之·海

哇塞,我将因此动力加倍!冲冲冲

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

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

打赏作者

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

抵扣说明:

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

余额充值