我不能真正谷歌名称和NOT并获得任何有用的结果,这个运算符究竟是什么,我怎么能用像C这样的语言呢?我检查了规范,并没有任何帮助,但有一个列表,它是&^
(不是).
Go表达式的C等价物x &^ y
就是x & ~y
.这实际上是" x
AND(按位不是y
)".
在规范的算术运算符部分描述&^
为"位清除"操作,它给出了您想要使用它的想法.作为两个单独的操作,~y
将每一位转换为零,然后将清除相应的位x
.每个零位将转换为1,这将保留相应的位x
.
因此,如果您认为x | y
这是一种x
基于掩码常数打开某些位的方法y
,那么x &^ y
正在执行相反的操作并关闭相同的位.