C语言为什么可以用&(与运算)来判断奇数偶数。 讲明原理,书上只举例了二进制的位逻辑运算?

原理是把十进制数换成二进制数,然后再判断吗?
#include"stdio.h"
main()
{
int x,y;
scanf("%d",&x);
y=x&1;
printf("%d\n",y);
}

偶数的最低比特为0,而奇数的最低比特为1。如果将一个数与1进行&运算,结果只会保留那个数的最低比特位,而其它位已清零。且结果只可能是0或1,如果是0那个数就是偶数,否则就是奇数。
拿你的代码举例,y=x&1;
if(y==0)
{
//x是偶数时要执行的代码
}
else
{
//x是奇数时要执行的代码
}
实际上可以更简单:
f(x&1)
{
//x是奇数时要执行的代码
}
else
{
//x是偶数时要执行的代码
}
温馨提示:答案为网友推荐,仅供参考
相似回答