Ruby 理解异或逻辑算子

Ruby 理解异或逻辑算子,ruby,language-agnostic,Ruby,Language Agnostic,我不明白 2.0.0p247 :616 > 5 ^ 2 => 7 2.0.0p247 :617 > 5 ^ 1 => 4 在这些场景中,7和4意味着什么 我试着在这里阅读,但无法通过查看图表找出这里的减法。抱歉,如果这是一个简单的数学问题。它与值的二进制表示有关 5 = 0101 2 = 0010 1 = 0001 现在XOR的工作原理如下: 0 ^ 0 = 0 0 ^ 1 = 1 1 ^ 0 = 1 1 ^ 1 = 0 为了计算5^2,让我们对每列应用^操

我不明白

2.0.0p247 :616 > 5 ^ 2
 => 7 
2.0.0p247 :617 > 5 ^ 1
 => 4 
在这些场景中,7和4意味着什么


我试着在这里阅读,但无法通过查看图表找出这里的减法。抱歉,如果这是一个简单的数学问题。

它与值的二进制表示有关

5 = 0101
2 = 0010
1 = 0001
现在XOR的工作原理如下:

0 ^ 0 = 0
0 ^ 1 = 1
1 ^ 0 = 1
1 ^ 1 = 0
为了计算5^2,让我们对每列应用
^
操作:

这是怎么回事?在最左边的列中,我们计算了
0^0=0
。在第二列中,
1^0=1
。在第三列中
0^1=1
,依此类推

和5^1

0101   (this is 5)
0001   (this is 1)
----
0100   ==> which is the binary represenation of 4

这是Ruby独有的行为吗?为什么不贴上标签?还是不明白。为什么您的示例中的
5^2
似乎是加法而
5^1
是减法?哦,对不起!将
^
应用于每列。这既不是加减法。我会把答案弄清楚的。这是我的问题。它是什么?“我很难理解这里的数学,”马丁说,“它是数字的二进制表示形式。XOR意味着只有在两个位表示上不相同的位被设置为1。好的,我想我现在知道了。谢谢
0101   (this is 5)
0001   (this is 1)
----
0100   ==> which is the binary represenation of 4