Ruby中插入符号(^)的使用

Ruby中插入符号(^)的使用,ruby,operators,caret,Ruby,Operators,Caret,这些是我得到的结果。谁能解释一下^是如何工作的吗?这是一个 对于操作数二进制表示形式中的每一位,如果操作数中的一个对应位为1,则按位异或将获得1位,但不能同时获得2位,否则异或将获得0位。下面是一个例子: 1 ^ 1 # => 0 1 ^ 2 # => 3 5 ^ 6 # => 3 实际上,我并不知道Ruby有二进制文本,因为我不是Ruby开发人员:)谢谢,帮助我解密了我在某人代码中发现的愚蠢行为:如果(blocks[blockname]^invertBlock)或con

这些是我得到的结果。谁能解释一下
^
是如何工作的吗?

这是一个

对于操作数二进制表示形式中的每一位,如果操作数中的一个对应位为1,则按位异或将获得1位,但不能同时获得2位,否则异或将获得0位。下面是一个例子:

1 ^ 1
# => 0

1 ^ 2
# => 3

5 ^ 6
# => 3

实际上,我并不知道Ruby有二进制文本,因为我不是Ruby开发人员:)谢谢,帮助我解密了我在某人代码中发现的愚蠢行为:
如果(blocks[blockname]^invertBlock)或consts['Type']==blockname
可以将其视为逻辑操作中的等价物:
(a | b)&!(a和b)
xor:一个或另一个,而不是两个
5     = 101
6     = 110
5 ^ 6 = 011 = 3