【问题标题】:Use of caret symbol( ^ ) in Ruby在 Ruby 中使用插入符号 (^)
【发布时间】:2011-08-23 14:57:57
【问题描述】:
1 ^ 1
# => 0

1 ^ 2
# => 3

5 ^ 6
# => 3

这些是我得到的结果。请有人解释一下^ 的工作原理吗?

【问题讨论】:

    标签: ruby operators caret


    【解决方案1】:

    这是bitwise XOR operator.

    对于操作数的二进制表示中的每一位,如果操作数中的相应位之一为 1,而不是两者都为 1,则按位异或将获得 1 位,否则异或将获得 0 位。这是一个例子:

    5     = 101
    6     = 110
    5 ^ 6 = 011 = 3
    

    【讨论】:

    • 我实际上并不知道 Ruby 有二进制文字,因为我不是 Ruby 开发人员:)
    • 谢谢,帮我解密了我在某人的代码中发现的这种愚蠢:if (blocks[blockname] ^ invertBlock) or consts['Type'] == blockname
    • 可以将其视为逻辑运算中的等价物:(a || b) && !(a && b)
    • 异或:一个或另一个,不是两个
    猜你喜欢
    • 2023-03-15
    • 1970-01-01
    • 2014-11-26
    • 1970-01-01
    • 1970-01-01
    • 2012-08-03
    • 1970-01-01
    • 2018-05-14
    • 1970-01-01
    相关资源
    最近更新 更多