^(插入符号)运算符在Java中起什么作用?

当我尝试这样做时:

int a = 5^n;

...它给我:

当n = 5时,返回0 当n = 4时,返回1 当n = 6时,返回3

...所以我猜它不会取幂。但那是什么呢?


当前回答

正如其他人所说,这是按位异或。如果你想求一个数字的给定幂,请使用Math。Pow (a, b)这里a是数字,b是幂。

其他回答

它是XOR位操作符。

要执行幂运算,可以使用Math。战俘相反:

https://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Math.html#pow%28double,%20double%29

这是因为使用了异或运算符。

在java或其他语言中,^是位xor, 当然,

10 ^ 1 = 11。 关于逐位操作符的更多信息

有趣的是,Java和c#没有强大的操作符。

^ = (按位异或)

描述

如果二进制异或操作符在一个操作数中设置,则复制位。

例子

(A ^ B)会给出49,即0011 0001

作为其他答案的补充,值得一提的是,插入操作符也可以与布尔操作数一起使用,它返回true(当且仅当)操作数不同:

    System.out.println(true ^ true); // false
    System.out.println(true ^ false); // true
    System.out.println(false ^ false); // false
    System.out.println(false ^ true); // true