我不明白这个
2.0.0p247 :616 > 5 ^ 2
=> 7
2.0.0p247 :617 > 5 ^ 1
=> 4
在这些情况下,7和4意味着什么?
我试着在这里阅读http://en.wikipedia.org/wiki/Exclusive_disjunction,但是通过查看图表这里的减法是什么无法弄清楚。对不起,如果这是一个简单的数学问题。
答案 0 :(得分:10)
它与值的二进制表示有关。
5 = 0101
2 = 0010
1 = 0001
现在XOR的工作原理如下:
0 ^ 0 = 0
0 ^ 1 = 1
1 ^ 0 = 1
1 ^ 1 = 0
所以要计算5 ^ 2,让我们将^
操作应用于每列:
0101 (this is 5)
0010 (this is 2)
----
0111 ==> which is the binary representation of 7
这是怎么回事?在最左边的列中,我们计算了0^0=0
。在第二列中,1^0=1
。在第三列0^1=1
,依此类推。
和5 ^ 1
0101 (this is 5)
0001 (this is 1)
----
0100 ==> which is the binary represenation of 4