(按位)逻辑运算符和移位运算符

意义:学会一些位操作能够提升程序的执行效率。

简介:按位逻辑运算符:按位取反(~),按位与(|),按位与(&),按位异或(^)

移位运算符:左移(<<) ,右移(>>)

注意:!!!!上述除了按位取反是单目(一元)运算符,其他的都是二目(二元)运算符,还有这些都可以用赋值运算符的例如<<= ,>>=,&=等等

按位逻辑运算符:

按位与(&)

运算:两边都为1才是1,否则都是0;

作用:1.能够判断一个数是否为偶数(偶数的二进制最后一位应该是0)

           

          2.掩码:使用按位与运算符任何与0组合都得0,1号位的值不变,这个过程叫做“使用掩码”,因为掩码中的0隐藏了flags中相应的位。

          3.关闭位(清空位):对应位设置为0,其他位设为1,1&任何都得原来的值,不改变原来的数字,而为0,无论是什么对应位都变成0

          4.检测特定位

           

 按位或(|):

运算:两边对应位是0才是0其余的都是1

作用:1.打开位(设置位):其他位设置位0,需要打开的位设置位1,因为设置为1最后或运算肯定是1

按位取反(~):

运算:对应位1变0,0变1.

作用:1.只适用于整体取反,限定位数了还是很难做到

按位异或(^):

运算:同为0异为1

作用:1.限定位置去取反(需要取反的位置用1,其他位置用0)

           2.可以用来交换两个变量(优点是不用占据内存,缺点是可能比较难以理解)

            

 

移位运算符:

左移(<<):

     左侧运算对象每一位的值向左移动右侧运算对象指定的位数,左侧运算对象移出左末端位的值丢失,右侧补0.

右移(>>):

       左侧运算对象每一位的值向右移动运算对象指定的位数,右侧运算对象移出右末端的值丢失,对于无符号类型,用0来填充空出的位置;对于有符号类型,其结果取决于机器。也就是空出来的位置可用0填充,或者用符号位的副本来填充

作用:在计算2的多少次方的时候提供快速有效的乘法除法。

          

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值