在网页中,我看到以下脚本代码段。
(d.charCodeAt(i)^k.charCodeAt(i)).toString()
这是for-loop
的一部分,我知道charCodeAt(i)
是什么,但我真的想知道^
符号的功能是什么......我做了一些搜索但是失败了找到任何东西......
什么是^
以及执行相同工作的Python或其他编程语言中存在哪些函数或运算符?
答案 0 :(得分:4)
这是bitwise XOR
运营商。来自MDN docs:
[Bitwise XOR]在每个位的位置返回一个相应的位 或者两个操作数都不是。
操作数是操作员左侧或右侧的操作数。
例如,如果我们有两个字节:
A 11001100
B 10101010
我们最终
Q 01100110
如果A中的位置位或者B中的位置位,但不是两者,则结果为1
,否则为0
。< / p>
在您给出的示例中,它将采用来自d.charCodeAt(i)
和k.charCodeAt(i)
的ASCII字符代码的二进制表示,并对它们进行异或。它在Python,C ++和大多数其他语言中也是如此。不要与数学相关的上下文中的指数运算符混淆;语言将提供pow()
功能或类似功能。一个JavaScript有Math.pow(base, exponent)
。
答案 1 :(得分:3)
在Javascript中,它是bitwise XOR运算符 - 独占或。仅当一个或另一个操作数为true时才返回true,但如果它们都为true或两者都为false,则返回false。
在Python中,它the same thing。
维基百科的XOR page。
答案 2 :(得分:2)
这是一个按位异或。它在操作数的每一位执行“异或”。