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