【问题标题】:groovy ^ operator常规的 ^ 运算符
【发布时间】:2011-10-29 00:38:24
【问题描述】:

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

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

当给定两个数字参数时,它会做一些事情,但我不知道是什么。一开始我以为是模块化划分,因为

(5 ^ 5) == 0

然而

(10 ^ 4) == 14

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

【问题讨论】:

标签: groovy operators


【解决方案1】:

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

这是一个按位异或(简称:按位异或)

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

【讨论】:

  • 确实,据我所知,所有从 C 强烈派生的语言都具有其 XOR 运算符的这种规定行为。例如。 perl -le 'print(10 ^ 4)' 打印出 14。Groovy 和 Perl 占据了相似的生态环境,以至于 Groovy’s version 是数十种语言中的第一种,其 Perl Cookbook 的翻译在 @987654322 中完成@Sourceforge 上的存储库。 OCaml 是第二个。 Python 为 85%,而 Ruby 仅为 65%。 Groovy 既简单又有趣。
猜你喜欢
  • 1970-01-01
  • 2020-03-04
  • 1970-01-01
  • 1970-01-01
  • 2010-09-30
  • 1970-01-01
  • 1970-01-01
  • 2013-01-18
  • 2023-03-08
相关资源
最近更新 更多