當給出兩個布爾參數時,^運算符執行排他或例如groovy^operator
true^true == false
true^false == true
false^true == true
false^false == false
當給出兩個數值參數時,它做了一些事情,但我不知道是什麼。起初我還以爲是模塊化的分工,因爲
(5^5) == 0
然而
(10^4) == 14
所以它不是模塊化的分工,是某種位移的?
當給出兩個布爾參數時,^運算符執行排他或例如groovy^operator
true^true == false
true^false == true
false^true == true
false^false == false
當給出兩個數值參數時,它做了一些事情,但我不知道是什麼。起初我還以爲是模塊化的分工,因爲
(5^5) == 0
然而
(10^4) == 14
所以它不是模塊化的分工,是某種位移的?
^
做同樣的事情,因爲它在Java和大多數其他語言:
這是一個按位異或(簡稱:按位異或)
這意味着在的二進制表示的每個位兩個數字在輸出結果位將是bit_in_first_value^bit_in_second_value
。
事實上,據我所知,在C強烈衍生的所有漢語語言有此規定的行爲,他們的XOR操作員。例如。 'perl -le'print(10^4)''打印出來14. Groovy和Perl佔據了一個相似的生態環境,非常好[Groovy的版本](http://pleac.sourceforge.net/pleac_groovy/index.html )是在Sourceforge的[PLEAC - Programming Language Examples Alike Cookbook](http://pleac.sourceforge.net/)存儲庫中完成了翻譯* Perl Cookbook *的數十種語言中的第一批。 OCaml是第二個。 Python只有85%,而Ruby只有65%。 Groovy很簡單而有趣。 – tchrist
這是按位異或,相同的Java http://stackoverflow.com/questions/460542/operator-in-java –