2011-08-17 31 views
5

2つのブール引数を指定すると、^演算子は排他的論理和を実行します。groovy ^演算子

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

2つの数値引数を指定すると、何かが実行されますが、何もわかりません。最初に私は

(10^4) == 14 

しかし

(5^5) == 0 

ので、それはモジュラー部門だと思ったので、それは、モジュラー部門ではありません、それはビットシフトのいくつかの種類ですか?

それは、ビット単位の排他的論理和です:それはJavaで行い、他のほとんどの言語として

+0

これは、Javaのようにビットごとの排他的論理和、同じだ http://stackoverflow.com/questions/460542/operator-in-java –

答えて

12

^は同じことを行い(ショート:ビット単位のXOR)

このことのバイナリ表現でビット毎2つの数字は出力の結果のビットはbit_in_first_value^bit_in_second_valueになります。

+1

確かに、私の知識に強くCから派生したすべてのlangaugesは、この所定の動作を持っている彼らのXOR演算子。例えば。 'perl -le 'print(10^4)''がプリントアウトします。14. GroovyとPerlは同様のエコロジーなので、[Groovyのバージョン](http://pleac.sourceforge.net/pleac_groovy/index.html) )は、* Perl Cookbook *の翻訳がSourceforgeのリポジトリ(PLEAC - Programming Language Examples Alike Cookbook)(http://pleac.sourceforge.net/)リポジトリで完結している数十の言語の中で最初のものでした。 OCamlは2番目でした。 Pythonは85%、Rubyは65%しかありません。 Groovyは簡単で楽しいです。 – tchrist