我理解对于布尔值,异或表示如果输入不同,输出将打开。 link
但它如何处理非布尔值,如下所示。在C#或Javascript中,它的价值如何" 10"以下代码。有人可以帮我解释一下吗?
Console.WriteLine(9^3);
答案 0 :(得分:1)
我得到的印象是你用纯逻辑术语思考,结果必须是真或假,1或0. ^
运算符 以这种方式行事,但作为一个按位运算符是每位,一次一个,而不是一次整个值。并不是9和3都是“真实的”,因此结果必须是假的。这是9
1001
而3
是0011
,当你用xor检查每个相应的位时,得到1010
,即{{1} }}:
10
答案 1 :(得分:1)
按位运算符对存储在存储器中的位执行操作。
因此,为每个十进制数取二进制值并执行操作。
9 ---Binary Value ---> 0000 1001
3 ---Binary Value ---> 0000 0011
Perform EXOR (^) ------------
0000 1010 ---- Decimal Value --> 10