我承担了确定如何确定奇数和偶数的任务。我无法使用%。我之所以使用&,是因为我在互联网上找到了它,但是我找不到适合它的工作方式。
不适用
我创建的样本是
`
if ((22 & 1) === 0) {
return true;
} else{
return false;
}`
返回true
答案 0 :(得分:1)
&按位运算符的工作方式如下:
var isOdd = number & 1;
var isEven = !(number & 1);
(22 & 1) === 0
是正确的,因此可以告诉您它是偶数,因为如果数字为偶数,number & 1
等于0
,如果数字为奇数,则等于1
。
答案 1 :(得分:1)
以二进制表示法,最右边的位是那个位置:
0 = 0000
1 = 0001
2 = 0010
3 = 0011
4 = 0100
5 = 0101
6 = 0110
...etc
因此您可以看到,每个奇数都以1
结尾,每个偶数都以0
结尾。
使用&
时,您需要按位进行计算。当您执行X & 1
时,是将X
的每一位与1
进行比较还是以二进制形式进行比较:00001
(可以将零继续向左扩展)并同时进行测试位是1
。
因此,例如22是二进制10110
中的22 & 1
会查找每个位并测试是否为真:
1 0 1 1 0
0 0 0 0 1 < no bits are 1 in both number
---------
0 0 0 0 0 < all zeros == 0 so 22 is even
23是10111
:
1 0 1 1 1
0 0 0 0 1 the last bit is one in both numbers
---------
0 0 0 0 1 < 1 so 23 is odd
由于最后一位在奇数中始终为1 x & 1
对于奇数将始终为1,对于偶数始终为零。
答案 2 :(得分:0)
function isEven(number) {
return (number & 1) == 0;
}
const userInput = 4;
console.log(isEven(userInput) == true ? "Even" : "Odd");