【问题标题】:Meaning and function of ^ (caret) sign in javascript [duplicate]^(插入符号)在javascript中的含义和功能[重复]
【发布时间】:2012-03-08 10:17:19
【问题描述】:

在网页中,我看到以下脚本 sn-p。

(d.charCodeAt(i)^k.charCodeAt(i)).toString()

它是for-loop 的一部分,我知道charCodeAt(i) 是什么,但我真的很想知道^ 标志的功能是什么……我进行了一些搜索,但没有找到任何东西……

什么是^,在 Python 或其他执行相同工作的编程语言中存在什么函数或运算符?

【问题讨论】:

    标签: javascript operators


    【解决方案1】:

    它是bitwise XOR 运算符。来自MDN docs

    [Bitwise XOR] 在每个位位置返回一个 1 一个但不是两个操作数都是一个。

    其中操作数是运算符左侧或右侧的任何内容。

    例如,如果我们有两个字节:

    A 11001100
    B 10101010
    

    我们最终得到

    Q 01100110
    

    如果设置了 A 中的某个位或设置了 B 中的某个位,不是两者,则结果为 1,否则为 0


    在您给出的示例中,它将采用来自d.charCodeAt(i)k.charCodeAt(i) 的ASCII 字符代码的二进制表示并对它们进行异或。它在 Python、C++ 和大多数其他语言中也是如此。不要与数学相关上下文中的指数运算符混淆;语言将提供pow() 函数或类似函数。 JavaScript for one 有Math.pow(base, exponent)

    【讨论】:

      【解决方案2】:

      这是一个按位异或。它在操作数的每一位中执行“异或”。

      【讨论】:

        【解决方案3】:

        在 Javascript 中,它是 bitwise XOR 运算符 - 异或。只有当一个或另一个操作数为真时才返回真,但如果它们都为真或都为假,则返回假。

        在 Python 中,它是 the same thing

        维基百科的XOR page

        【讨论】:

          猜你喜欢
          • 2019-06-28
          • 2014-09-14
          • 1970-01-01
          • 1970-01-01
          • 2014-09-16
          • 2011-05-31
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多