xor运算符及其在java中的用途?

时间:2014-04-17 15:44:16

标签: java bitwise-operators xor

因此,XOR(^)运算符对布尔运算符有意义。它基本上与!=。

相同

现在,对于int运算符,对我来说没有任何意义。我做了一点测试,这是我的结果(不知道为什么stackoverflow坚持像代码一样格式化它):

10 ^ 10 = 0
10 ^ 11 = 1
10 ^ 12 = 6
10 ^ 13 = 7
10 ^ 5 = 15

反向运算符似乎没有任何效果。这里的模式是什么?而且,这怎么可能在任何现实世界的应用程序中都有用呢?

1 个答案:

答案 0 :(得分:2)

XOR是一个按位运算符,其简单的英文描述是“一个或另一个,但不是两个”。考虑到你的真值表,你需要以一种明智的方式来看待它们:

x y   x^y
0 0   0     <-same values, so xor is 0
1 0   1     <-values differ, so xor is 1
0 1   1     <-values differ, so xor is 1
1 1   0     <-same values, so xor is 0

所以

10 decimal = 1010 binary
11 decimal = 1011 binary
12 decimal = 1100 binary
13 decimal = 1101 binary

10 ^ 11 -> 1010 ^ 1011 -> 0001 -> 1 decimal
10 ^ 12 -> 1010 ^ 1100 -> 0100 -> 6 decimal
etc...