按位运算如何工作?

时间:2015-05-08 05:20:18

标签: javascript python bitwise-operators

我遇到了奇怪的运算符,例如&|^等。这些运算符究竟是如何工作的?

>>> 10 | 7
15
>>> 10 ^ 7
13
>>> 10 & 7
2
>>> 

这种模式看起来确实很奇怪,大多数来源都没有给出易于理解的答案。

2 个答案:

答案 0 :(得分:0)

BITWISE AND

1中的每个项目乘以2中的相应值:

a = 5     # In binary: 0101
b = 3     # In binary: 0011
c = a & b # In binary: 0001

print c   # In decimal: 1

BITWISE OR

如果任一行中的任何项为1,则相应的结果为1

a = 5     # In binary: 0101
b = 3     # In binary: 0011
c = a | b # In binary: 0111

print c   # In decimal: 7

BITWISE XOR

如果每列中的项目彼此不同,则结果为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;
&#13;
&#13;