大家都知道,C++判断奇偶数可以用
if (n % 2 == 0)
这样的语句,但, “== 0” 是可以用 “ ! ”代替的
if (!(n % 2))
不过会比较难理解
判断奇偶还有一种方法,写法很短,是笔者最喜欢的一种
类似这样
if (n & 1)
运用按位与的方法
我给大家举个例大家就明白了
比如,一个奇数5,
它的二进制是 (00000101)2
与1按位与的话(1是 (00000001)2),
5 & 1 = (00000101)2 & (00000001)2 = (00000001)2 = 1 = true,毕竟 1 && 1 = 1
而一个偶数 10 也就是 (00001010)2 & 1 的话,
10 & 1 = (00001010)2 & (00000001)2 = (00000000)2 = 0 = false
所以,我们得出了一个结论:奇数 & 1 = 1 = true, 偶数 & 1 = 0 = false
#include <cstdio> int main() { int a = 1, b = 2; // a 是奇数,b 是偶数 if (a & 1) puts("yes"); else puts("no"); // 输出 yes if (b & 1) puts("yes"); else puts("no"); // 输出 no return 0; }