Groovy的“^”操作符是什么?

5

当给定两个布尔值参数时,^ 操作符执行异或操作,例如:

true ^ true == false
true ^ false == true
false ^ true == true
false ^ false == false

当给定两个数字参数时,它会执行某些操作,但我不知道具体是什么。起初我以为它是模除运算,因为

(5 ^ 5) == 0

然而。
(10 ^ 4) == 14

所以它不是模块化除法,是某种位移操作吗?

这是按位异或,与Java相同。 - Rag
1个回答

12

^ 在 Java 和大多数其他编程语言中的作用与此相同:

它是按位异或 (简称:按位 XOR)。

这意味着对于两个数字的二进制表示中每个位,输出结果中的位将是 第一个值的该位 ^ 第二个值的该位


1
据我所知,所有强烈派生自C的语言都有其XOR运算符的规定行为。例如,perl -le 'print(10 ^ 4)'将输出14。Groovy和Perl占据了类似的生态环境,以至于Groovy的版本是数十种语言中第一个在PLEAC-编程语言示例类似菜谱存储库上完全翻译Perl Cookbook的版本。OCaml是第二个。Python已经达到了85%,而Ruby仅有65%。Groovy易学好玩。 - tchrist

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接