位运算应用

位运算:基本上是数据运算里面速度最快的了,很多操作都可以采用位运算来进行计算。
笔试又碰见了位运算的题目,剑指offer上页重点讲了位运算的原理,觉得还是非常重要的。

  1. 判断奇偶:判断奇偶只需要二进制的最后一位就可以,二进制最右位位0则为偶,否则为奇
    比如:5 = 101 6 = 110,这很容易看出。 5 & 1 计算机运算时转为101 &001 =1,则为奇数。
  2. 计算数的二进制包含多少个1。这跟1)很像,1)里面仅是判断最后一位是否位1,这种情况则是判断其他位上是否为1。同样的,我们可以做与运算,只需要让我们需要判断的位位1,其余位0即可。一个二进制数要想一位位1,其余为0 ,必定是2的次,2(10),4(100),8(1000)等,则此时可以做左移运算得到2的次幂。
    同样的,我们可以缩小二进制,直接得出最右位是否为1,来依次判断次数中1的而个数。

你可能感兴趣的:(C++基础)