为什么i&1可以判断奇偶?

image.png
一般不是if( && ) 或者表达式中的短路运算符 && || 吗,单独一个&什么意思

回复
阅读 8k
2 个回答

感觉楼上的表述得不太好,我做个补充。
在计算机里是只认识二进制的,我们人类用的一般是十进制,而二进制有个特点就是每一位上要么是0要么是1,还有一个特点是如果哪个位置是1,那一位的值就是2^n【^这个符号表示次方】,n就是这个1所处的位。举个例子,比如二进制“11”,它有两位,那么类比十进制“个十百千”的规律,这里的个位1(也就是最右边的1)它的值是2^0=1,它的十位就是2^1=2,所以它的总数为2+1=3。这就是二进制的计算规则。了解了这个规则之后,你可能会发现,2的n次方(n>0)肯定是偶数,只有在第0位为1时才会是奇数
那么如何才能知道一个数的第0位为1呢?答案就是按位与,也就是“&”这个操作符,按位与就是把两个二进制数按照“1和1与为1,1和0与为0”输出结果,比如两个二进制数“11”(即十进制3)和“01”(即十进制1)按位与,结果为“01”也就是十进制1。
知道以上两点后,你应该就能理解为什么“i&1”可以判断奇偶性了吧。

&是位运算
是从bit的角度进行判断,判断奇偶的原因是1的只有第一位是1,其它都是0
所以你拿其它数字跟他进行&运算,它会无视除了第一位的所有位(其它位都变成了0)
奇数第一位是1,偶数第一位是0,所以造成了可以判断奇偶的现象

https://developer.mozilla.org...

宣传栏