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为偶数。