23.从零开始学习C语言--位运算符

& 按位与:同汇编中的and命令一样,是对数据的二进制形式按位进行与运算,1&1=>1、1&0=>0、0&0=>0;

 | 按位或:同汇编中的or命令,对数据的二进制形式按位进行或运算,1|1=>1、1|0=>1、0|0=>0;

&可以把操作对象相应位设为0,5&10111111,将第六位设为0;

|可以把操作对象相应位设为1,5&01000000,将第六位设为1.

~按位取反:将操作对象二进制位全部取反;

^ 按位异或:对两个操作对象进行按位对比,相同为0,不同为1;

<<按位左移:同汇编指令shl,i<<3,将i逻辑左移3位,低位用0填充;相当于i = i × 2^n,左移n位相当乖以2的n次方;

>>按位右移:同汇编指令shr,i>>3,将i逻辑右移3位,原先最高位是0则高位补0,是1则高位补1,右移n位相当除以2的n次方。

关于>>和<<,虽然i = i × 8 和 i << 3,结果一样,但i<<3执行速度要快于i = i × 8,因为i = i × 8要运用乖法换算器,i<<3直接左移就可以了,>>同理。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值