去:^做什么?

时间:2014-07-22 15:01:06

标签: go operators

我希望这个问题不是愚蠢...我不知道^运算符在Go中的作用,例如。

a := 3^500

起初我认为它必须是pow,但肯定不是。它也不是mod(%)。

我已经尝试查看文档并在Google上搜索,但遗憾的是Google并不认为^是搜索字词。

1 个答案:

答案 0 :(得分:18)

与大多数语言一样,插入符号运算符是按位异或。你在整数上使用它。

Relevant Golang documentation

Wikipedia on the bitwise xor :

  

按位XOR采用两个相等长度的位模式并执行   对每对相应位进行逻辑异或运算。该   如果只有第一位是1或只有1,则每个位置的结果为1   第二位是1,但如果两者都是0或者两者都是1则为0.在此我们   执行两位的比较,如果两位是1,则为1   不同,如果它们相同则为0

     

按位XOR可用于反转寄存器中的选定位   (也称为切换或翻转)。可以通过对其进行异或来切换任何位   例如,给定位模式0010(十进制2),可以通过具有位模式的按位异或来切换第二和第四位。   在第二和第四位置包含1:

     0010 (decimal 2)
 XOR 1010 (decimal 10)
   = 1000 (decimal 8)
  

该技术可用于操纵表示集合的位模式   布尔状态。