黑马程序员技术交流社区
标题:
怎么用位与 & 运算判断一个整数的奇偶性??
[打印本页]
作者:
Lbabywei1988
时间:
2015-3-4 21:58
标题:
怎么用位与 & 运算判断一个整数的奇偶性??
求神助!
作者:
不爱不诺
时间:
2015-3-5 08:16
a&1==1奇数
a&1==0偶数
作者:
itheima2xy
时间:
2015-3-5 09:35
楼上正解!在内存中数是以2进制存在,比如:
十进制0 ----------------- 0000 0000
十进制1 ----------------- 0000 0001
十进制2 ----------------- 0000 0010
十进制3 ----------------- 0000 0011
十进制4 ----------------- 0000 0100
。
。
。
总结出一个规律:
奇数最低位都为1,偶数最低位都为0
而十进制1的最低位位1,其他位都为0
所以奇数&1的结果都为1,偶数&1的结果都为0
作者:
悟饭
时间:
2015-3-5 09:45
设a为整数,那么通过判断a&1的结果就可以知道a是奇数还是偶数了。
因为1的二进制为0001, 任何偶数的二进制的最低位是0,而任何奇数的二进制位的最低位是1,
所以a&1的结果如果是0,那么a是偶数,如果是1,那么a奇数。
例如:a = 8. 因为8 的二进制为 1000,那么a&1 = 1000 & 0001 结果为0.
如果a = 11. 因为11的进制为1011,那么a&1 = 1011 & 0001结果为1.
不知道这样说,你能不能明白。
作者:
如此先生
时间:
2015-3-5 09:57
#include <stdio.h>
int main()
{
int a = 15;
a&1 == 1 // 奇数
a&1 == 0 // 偶数
/*
if (a%2) {
printf("奇数\n");
} else {
printf("偶数\n");
}*/
//a%2==0?printf("偶数\n"):printf("奇数\n");
//a%2?printf("奇数\n"):printf("偶数\n");
return 0;
}
作者:
风中一场梦
时间:
2015-3-5 14:39
看到回复我惊呆了,默默的溜走
作者:
longsha6612
时间:
2015-3-7 22:07
任何整数%2,如果=0就是偶数,否则就是奇数
作者:
悟饭
时间:
2015-3-7 22:12
longsha6612 发表于 2015-3-7 22:07
任何整数%2,如果=0就是偶数,否则就是奇数
看清题目。
作者:
longsha6612
时间:
2015-3-7 22:16
悟饭 发表于 2015-3-7 22:12
看清题目。
太坑了,没看清题目,那就楼上那位说的那样,&1=1就是奇数,&1=0就是偶数,&运算符比%运算起来快
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2