golang中的“&^”运算符是什么?

我不能真正用谷歌搜索名称 AND NOT 并获得任何有用的结果,这个运算符到底是什么,我怎么能用像 C 这样的语言来做到这一点?我检查了规范,除了一个说明它是&^(并且不是)的列表外,没有什么有用的。


翻过高山走不出你
浏览 256回答 2
2回答

慕莱坞森

&^ 运算符是位明确的(AND NOT):在表达式 z = x &^ y 中,如果 y 的对应位为 1,则 z 的每一位都为 0;否则等于 x 的对应位。来自Go 编程语言例子:package mainimport "fmt"func main(){&nbsp; &nbsp; var x uint8 = 1&nbsp; &nbsp; var y uint8 = 1 << 2&nbsp; &nbsp; fmt.Printf("%08b\n", x &^ y);}&nbsp;&nbsp;结果:00000001

大话西游666

Go 表达式的 C 等价物x &^ y只是x & ~y.&nbsp;这就是字面上的“&nbsp;xAND(按位非y)”。在规范的算术运算符部分描述&^为“位清晰”操作,它给出了你想用它做什么的想法。作为两个单独的操作,~y将每个位转换为零,然后将清除x.&nbsp;每个零位将转换为 1,这将保留x.因此,如果您认为x | y是一种x基于掩码常量打开某些位的方法y,那么x &^ y做相反的事情并关闭这些相同的位。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go