我遇到了奇怪的运算符,例如&
,|
,^
等。这些运算符究竟是如何工作的?
>>> 10 | 7
15
>>> 10 ^ 7
13
>>> 10 & 7
2
>>>
这种模式看起来确实很奇怪,大多数来源都没有给出易于理解的答案。
答案 0 :(得分:0)
行1
中的每个项目乘以行2
中的相应值:
a = 5 # In binary: 0101
b = 3 # In binary: 0011
c = a & b # In binary: 0001
print c # In decimal: 1
如果任一行中的任何项为1
,则相应的结果为1
:
a = 5 # In binary: 0101
b = 3 # In binary: 0011
c = a | b # In binary: 0111
print c # In decimal: 7
如果每列中的项目彼此不同,则结果为1
:
a = 5 # In binary: 0101
b = 3 # In binary: 0011
c = a ^ b # In binary: 0110
print c # In decimal: 6
答案 1 :(得分:-2)
这可能对您有所帮助
Bitwise operators guide in MDN
您也可以使用chrome javascript控制台测试所有这些运算符。
在javascript中试试这个
var a = 5;
var b = 6;
console.log((a & b)); //AND
console.log((a | b)); //OR
console.log((a ^ b)); //XOR
console.log((~a)); //NOT
console.log((a << b)); //Left Shift
console.log((a >> b)); //Sign propagating right shift
console.log((a >>> b)); //Zero fill right shift
&#13;