groovy^运算符

groovy^运算符,groovy,operators,Groovy,Operators,当给定两个布尔参数时,^运算符执行异或运算,例如 true ^ true == false true ^ false == true false ^ true == true false ^ false == false 当给出两个数值参数时,它会做一些事情,但我不知道是什么。起初我认为这是模块化的划分,因为 (5 ^ 5) == 0 然而 (10 ^ 4) == 14 因此,它不是模除,是某种位移位吗?^与Java和大多数其他语言中的情况相同: 它是位异或(简称:位异或) 这意味着,对于

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

true ^ true == false
true ^ false == true
false ^ true == true
false ^ false == false
当给出两个数值参数时,它会做一些事情,但我不知道是什么。起初我认为这是模块化的划分,因为

(5 ^ 5) == 0
然而

(10 ^ 4) == 14

因此,它不是模除,是某种位移位吗?

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

它是位异或(简称:位异或)


这意味着,对于这两个数字的二进制表示中的每一位,输出中的结果位将是
bit\u in_first\u value^ bit\u in_second\u value

它是按位排他的,或者与Java一样,据我所知,所有从C强烈派生的语言都有其XOR运算符的规定行为。例如,
perl-le'print(10^4)
输出14。Groovy和Perl占据着类似的生态优势,以至于是几十种语言中的第一种,它们的Perl食谱翻译在Sourceforge上的存储库中完成。OCaml是第二个。Python占85%,Ruby仅占65%。Groovy既简单又有趣。