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

当我尝试这样做时:

int a = 5^n;

...它给我:

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

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


当前回答

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

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

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

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

其他回答

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

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

它是按位异或,Java没有求幂运算符,你必须使用Math.pow()来代替。

异或运算符规则=>

0 ^ 0 = 0
1 ^ 1 = 0
0 ^ 1 = 1
1 ^ 0 = 1

4、5和6的二进制表示:

4 = 1 0 0 
5 = 1 0 1
6 = 1 1 0

现在,对5和4执行异或操作:

     5 ^ 4 => 1  0  1   (5)
              1  0  0   (4)
            ----------
              0  0  1   => 1

同样的,

5 ^ 5 => 1   0   1    (5)
         1   0   1    (5)
       ------------
         0   0   0   => (0)


5 ^ 6 => 1   0   1  (5)
         1   1   0  (6)
        -----------
         0   1   1  => 3

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

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