“&”如何与奇数和偶数相关?在JS中
How does '&' work in relation to odd and even? In JS
我的任务是弄清楚如何确定奇数和偶数。我无法使用 %。我使用 & 是因为我在互联网上找到了它,但我找不到适合它的工作方式。
N/A
我创建的示例是
`
if ((22 & 1) === 0) {
return true;
} else{
return false;
}`
Returns 真
& 按位运算符的工作方式如下:
var isOdd = number & 1;
var isEven = !(number & 1);
(22 & 1) === 0
为真,所以这告诉您它是偶数,因为如果数字是偶数,number & 1
等于 0
,如果数字是奇数,则 1
。
在二进制表示法中,right-most 位是个位:
0 = 0000
1 = 0001
2 = 0010
3 = 0011
4 = 0100
5 = 0101
6 = 0110
...etc
正如您所见,每个奇数都以 1
结尾,每个偶数都以 0
结尾。
当您使用 &
时,您正在进行 bit-wise 和计算。当您执行 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,对于偶数始终为 0。
function isEven(number) {
return (number & 1) == 0;
}
const userInput = 4;
console.log(isEven(userInput) == true ? "Even" : "Odd");
我的任务是弄清楚如何确定奇数和偶数。我无法使用 %。我使用 & 是因为我在互联网上找到了它,但我找不到适合它的工作方式。
N/A
我创建的示例是
`
if ((22 & 1) === 0) {
return true;
} else{
return false;
}`
Returns 真
& 按位运算符的工作方式如下:
var isOdd = number & 1;
var isEven = !(number & 1);
(22 & 1) === 0
为真,所以这告诉您它是偶数,因为如果数字是偶数,number & 1
等于 0
,如果数字是奇数,则 1
。
在二进制表示法中,right-most 位是个位:
0 = 0000
1 = 0001
2 = 0010
3 = 0011
4 = 0100
5 = 0101
6 = 0110
...etc
正如您所见,每个奇数都以 1
结尾,每个偶数都以 0
结尾。
当您使用 &
时,您正在进行 bit-wise 和计算。当您执行 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,对于偶数始终为 0。
function isEven(number) {
return (number & 1) == 0;
}
const userInput = 4;
console.log(isEven(userInput) == true ? "Even" : "Odd");