C/C++中“位与”运算讨论奇偶

& 按位与 如果两个相应的二进制位都为1,则该位的结果值为1,否则为0

int fun(int n)
{
      return  (n&1);       //返回1表示奇数,0表示偶数。  
}

根据位与的运算规则,如果两个相应的二进制位都为1,则改为的结果值为1,否则为0.而n&1,其实关键在于最后一位二进制位,它决定着n是奇数还是偶数。即n与1进行位运算无论n有多少位,只要最后一位是1,最后一位是1则意味着n一定是个奇数(2k+…+1一定是奇数),此时与1进行位与运算返回值是1;否则返回值是0,则表示n是偶数。位运算比%运算更加快捷,学会使用位与运算判断奇偶。

总之记住:n&1返回值是1则表示n是奇数,返回值是0则表示n为偶数。

    原文作者:jzwong
    原文地址: http://www.cnblogs.com/jzwong/p/4322808.html
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞