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

当我尝试这样做时:

int a = 5^n;

...它给我:

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

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


当前回答

它是异或运算符。它用于对数字进行位运算。它有这样的行为,当你对相同的位做异或操作,比如0 xor 0 / 1 xor 1,结果是0。但如果任何位不一样,结果就是1。 所以当你计算5^3时,你可以看这些数字5和6的二进制形式,这样表达式就变成了(101)XOR(110)它给出的结果(011)的十进制表示是3。

其他回答

它是异或运算符。它用于对数字进行位运算。它有这样的行为,当你对相同的位做异或操作,比如0 xor 0 / 1 xor 1,结果是0。但如果任何位不一样,结果就是1。 所以当你计算5^3时,你可以看这些数字5和6的二进制形式,这样表达式就变成了(101)XOR(110)它给出的结果(011)的十进制表示是3。

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

^ = (按位异或)

描述

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

例子

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

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

异或运算符规则

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

位运算符对位进行操作,并执行逐位操作。假设a = 60, b = 13;现在,在二进制格式中,它们将如下所示

a = 0011 1100

b = 0000 1101



a^b ==> 0011 1100  (a)
        0000 1101  (b)
        -------------  XOR
        0011 0001  => 49

(a ^ b) will give 49 which is 0011 0001