Go 围棋:你做什么?

Go 围棋:你做什么?,go,operators,Go,Operators,我希望这个问题不要太愚蠢。。。我不知道^操作员在围棋中做什么,例如 a:=3^500 起初我认为它一定是pow,但肯定不是。它也不是mod(%)的 我试着在谷歌上搜索文档,但不幸的是,谷歌并不认为^是一个搜索词。与大多数语言一样,插入符号运算符是一个位异或。在整数上使用它 按位异或采用两个长度相等的位模式并执行 每对对应位上的逻辑异或运算。这个 如果仅第一位为1或仅第一位为1,则每个位置的结果为1 第二位为1,但如果两者均为0或均为1,则将为0。在这方面,我们 执行两个位的比较,如果两个位为

我希望这个问题不要太愚蠢。。。我不知道
^
操作员在围棋中做什么,例如

a:=3^500

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

我试着在谷歌上搜索文档,但不幸的是,谷歌并不认为
^
是一个搜索词。

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

按位异或采用两个长度相等的位模式并执行 每对对应位上的逻辑异或运算。这个 如果仅第一位为1或仅第一位为1,则每个位置的结果为1 第二位为1,但如果两者均为0或均为1,则将为0。在这方面,我们 执行两个位的比较,如果两个位为 不同,如果相同,则为0

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

此技术可用于操纵表示多组数据的位模式 布尔状态

将@karmakaze的评论添加到此答案以获取更多有用信息:

同样作为一元运算符,它不是按位的。e、 g.
^uint(0)
导致32位机器的
uint
0xffffffff
,而64位机器的值更长


为便于将来参考,
^
运算符称为插入符号。你可以用谷歌搜索这个。您可能还想使用“Golang”而不是“Go:”)可以肯定的是,您没有真正看到
3^500
?这没有多大意义。事实上,我看到了
hash^=uint32(c)
如果您不了解围棋语法,请查看。它解决了大多数问题。@ydaetskcoR这就是谷歌现在带我去的地方。而且作为一元运算符,它不是按位的。e、 g.
^uint(0)
对于32位机器,会产生uint值
0xffffffff
,对于64位机器,则会产生更长的uint值。@karmakaze您应该通过添加注释来编辑/改进答案。
     0010 (decimal 2)
 XOR 1010 (decimal 10)
   = 1000 (decimal 8)