所以我是Javascript的新手,在我的第一个Javascript入门课程中。我刚刚找到了&
运算符所做的事情并且遇到了这个定义:
&运算符在每个位的位置返回一个,两个操作数的相应位都是1。
我还能够在此网站上找到之前已回答的问题的==
和===
的说明。在此链接:Wikipedia Bitwise_operation#AND
它解释了1 & 1
与1 x 1
相同,即简单乘法。所以我的问题是为什么10 & 5 == 0
和10 & 6 == 2
不是10 & 5 == 50
和10 & 6 == 60
吗?
我没理解什么?
答案 0 :(得分:2)
它只是每个位置(1和0)中的二进制位相乘。
例如,使用10 & 5
:
10 =二进制1010
5 = 0101二进制
现在将每个数字乘以相同位置的另一个数字:
(1×0)(0×1)(1×0)(0×1)
= 0000
小数= 0
console.log(10 & 5)

使用10 & 6
:
10 =二进制1010
6 = 0110二进制
现在将每个数字乘以相同位置的另一个数字:
(1×0)(0×1)(1×1)(0×0)
= 0010
=十进制2
console.log(10 & 6)

答案 1 :(得分:1)
相当于每位乘法 。
{{1}}
所以你的例子是10& 5是:
{{1}}
答案 2 :(得分:0)
如果从基数10切换到基数2,这在按位比较数字时是必需的,那么它就更清晰了:
10& 5成为1010& 0101在基数2中等于0000,在基数10中等于0
10& 6变为1010& 0110在基数2中等于0010,在基数10中等于2
希望这有帮助!
答案 3 :(得分:-1)
所以10应该是这样的1010
和5应该是这样的0101
现在,如果您发现&或者对于他们两个,你应该得到类似0000
的零
类似于6,它应该是0110
哪个应该给&amp;或者<和,因为0010
恰好是2
注意: for和我们有以下规则
0 & 0 === 0
0 & 1 === 0
1 & 1 === 1
尝试浏览w3c文章:https://www.w3schools.com/jsref/jsref_operators.asp