groovy ^运算符

Dón*_*nal 5 groovy operators

当给出两个布尔参数时,^运算符执行异或,例如

true ^ true == false
true ^ false == true
false ^ true == true
false ^ false == false
Run Code Online (Sandbox Code Playgroud)

当给出两个数字参数时,它会做一些事情,但我不知道是什么.起初我认为这是模块化部门,因为

(5 ^ 5) == 0
Run Code Online (Sandbox Code Playgroud)

然而

(10 ^ 4) == 14
Run Code Online (Sandbox Code Playgroud)

所以它不是模块化的划分,它是某种位移?

Joa*_*uer 12

^ 做与Java和大多数其他语言相同的事情:

它是一个按位异或(短:按位异或)

这意味着对于两个数字的二进制表示中的每个位,输出中的结果位将是bit_in_first_value ^ bit_in_second_value.