【问题标题】:xor operator and its purpose in java? [duplicate]xor 运算符及其在 java 中的用途? [复制]
【发布时间】:2014-06-01 23:42:48
【问题描述】:

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

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

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

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

【问题讨论】:

  • 被拒绝为谷歌搜索xor operator 并阅读前几个结果中的任何一个都会给你一个非常好的解释......
  • 另外,XOR 运算符不是 Java 独有的。

标签: java bitwise-operators xor


【解决方案1】:

XOR 是位运算符,其简单的英文描述是“one or other, but not both”。考虑到你的真值表,你需要用一点点的方式来看待它们:

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...

【讨论】:

    猜你喜欢
    • 2013-01-09
    • 2015-01-16
    • 2013-06-15
    • 2011-08-08
    • 1970-01-01
    • 2015-06-20
    • 1970-01-01
    • 2013-10-09
    • 2013-10-08
    相关资源
    最近更新 更多