What does a bitwise exclusive OR do in Java?

后端 未结 4 817
天涯浪人
天涯浪人 2020-12-20 19:18

Given:

public class Spock {
    public static void main(String[] args) {
        Long tail = 2000L;
        Long distance = 1999L;
        Long story = 1000L         


        
相关标签:
4条回答
  • 2020-12-20 19:33

    In first if you get true ^ true = false
    In second if you get false ^ false = false
    becouse ^ - is OR exclusive opeartor, it's means

    true ^ true = false  
    true ^ false = true 
    false ^ true = true 
    false ^ false = false
    
    0 讨论(0)
  • 2020-12-20 19:44

    It doesn't print anything because when the XOR operator is used with boolean arguments (as opposed to integers) will only return true if exactly one of the 2 operands is true.

    In your first if both parts evaluate to true and true ^ true == false

    In your second if both parts evaluate to false and false ^ false == false

    0 讨论(0)
  • 2020-12-20 19:46

    You are using boolean exclusive OR and this is much the same as !=. In the first case, both conditions are true and in the second, both conditions are false so neither branch is taken. (You can check this with the debugger in your IDE)

    The only real difference is that != has higher precedence than & which is higher than ^

    0 讨论(0)
  • 2020-12-20 19:49

    From http://docs.oracle.com/javase/specs/jls/se7/html/jls-15.html#jls-15.22.2

    For ^, the result value is true if the operand values are different; otherwise, the result is false.

    0 讨论(0)
提交回复
热议问题