当给出两个布尔参数时,^运算符执行exclusive或者,例如
true ^ true == false
true ^ false == true
false ^ true == true
false ^ false == false
当给出两个数字参数时,它会做一些事情,但我不知道是什么。起初我认为这是模块化部门,因为
(5 ^ 5) == 0
然而
(10 ^ 4) == 14
所以它不是模块化的划分,它是某种位移?
答案 0 :(得分:12)
^
与Java和大多数其他语言的功能相同:
这是一个按位异或(短:按位异或)
这意味着对于两个数字的二进制表示中的每个位,输出中的结果位将是bit_in_first_value ^ bit_in_second_value
。