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

当我尝试这样做时:

int a = 5^n;

...它给我:

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

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


当前回答

它是java中的位xor运算符,当不同值时结果为1(即1 ^ 0 = 1),当相同值时结果为0(即0 ^ 0 = 0)。

其他回答

正如其他答案所述,它是“异或”(XOR)操作符。有关Java中位操作符的更多信息,请参见:http://java.sun.com/docs/books/tutorial/java/nutsandbolts/op3.html

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

^是二进制(以2为底)异或,而不是取幂(不能作为Java运算符)。关于取幂,请参见java.lang.Math.pow()。

AraK的链接指向了异或的定义,它解释了这个函数如何对两个布尔值工作。

缺少的信息是如何将其应用于两个整数(或整数类型值)。按位异或应用于两个数字中对应的二进制数字对,结果被重新组合成整数结果。

用你的例子:

5的二进制表示是0101。 4的二进制表示是0100。

定义按位异或的一个简单方法是,在两个输入数字不同的地方,结果都是1。

4和5,唯一的区别是在最后一位;所以

0101 ^ 0100 = 0001 (5 ^ 4 = 1).

在Python等其他语言中,您可以执行10**2=100,尝试一下。