java:为什么按位与运算符可以用来判断奇偶 "(i&1)!=0"

这个我知道 但是为什么就直接就取出二进制的最后一位了呢?

两个操作数分别转换为二进制码之后,对应位置的进制数比较,同为1则返回1。
1的二进制码只有最低位的一位,也就是1,而左边其它的位对应的进制码(不管是0还是1)都要和2的幂运算相乘再想加,肯定是偶数。所以,最低位的进制码决定了这个数的奇偶。
为1则是奇数,0为偶数。

或者,由二进制的计算规则知道,二进制码由余数组成,所以,最后一位也是最后一次相除的余数,为1则是奇数。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-11-25
与运算,两个数同时为1的时候才为1,你可以随便取一个奇数,转成二进制最后一位肯定是1
比如:11 转成二进制
1 0 1 1
& 0 0 0 1
------------------
0 0 0 1
所以,奇数与1作与运算,结果肯定是1本回答被提问者采纳
第2个回答  2013-02-04
当然了当用二进制表示一个数字的时候只要是奇数那他的转成二进制后最后一位一定是1, 数组和1进行与运算就是判断最后一位是不是1如果是就是奇数不是就是偶数。
第3个回答  2013-02-04
0101(5)你说的i
&0001(1)与1
--------
0001前面的三个数一定为0,所以直接取出最后一位了
第4个回答  2013-02-04
偶数二进制表达的末尾一定是0,
基数二进制表达的末尾一定是1;
相似回答