便利的位运算

本文深入探讨了位运算在计算机计算中的作用,揭示了它如何帮助我们理解二进制工作原理。通过实例解析了位运算的基本规则,如判断奇偶性、识别二的次幂以及高效地交换数值。位运算还能简化代码,例如二的累乘通过左移实现,除法则用右移。对于解决复杂问题,位运算提供了新的思考角度。
摘要由CSDN通过智能技术生成

南昌理工acm集训队

       当我们利用程序进行运算的时候,计算机里都是运用二进制去计算的,而位运算就是以二进制来计算的,了解二进制也可以帮助我们更好去理解计算机的工作方式。

       首先先了解位运算的基本规则

        举个例子,当我们进行8 | 4的计算时:

8—>01000                  8 | 4:0 1 0 0 0

4—>00100                             0 0 1 0 0

                                          ——————

 12—>01100                           0 1 1 0 0

位运算技巧:

1:判断奇偶性

当一个数是偶数的时候其二进制最后一位一定是0

用if ((a & 1) == 0)代替if (a % 2 == 0)即可

2:判断是否为二的次幂

x & (x-1)
x = 1100
x-1 = 1011
x & (x-1) = 1000

 运用上诉方法即可消去末尾的1 ,而2次幂的二进制中只有一个1,用此方法就可以消去这唯一的1使其等于0。

3:简化程序:

当我们需要写一个二的累乘时只需让二进制左移一位,而除法则是右移。

4:交换两个数

void Swap(int &a, int &b){
if (a != b){
a ^= b;
b ^= a;
a ^= b;
}
}

如果面对一些束手无策的题目时不妨考虑一下位运算。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值