为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
翻过高山走不出你 2021-11-29 19:20:48
我不能真正用谷歌搜索名称 AND NOT 并获得任何有用的结果,这个运算符到底是什么,我怎么能用像 C 这样的语言来做到这一点?我检查了规范,除了一个说明它是&^(并且不是)的列表外,没有什么有用的。
查看完整描述

2 回答

?
慕莱坞森

TA贡献1810条经验 获得超4个赞

&^ 运算符是位明确的(AND NOT):在表达式 z = x &^ y 中,如果 y 的对应位为 1,则 z 的每一位都为 0;否则等于 x 的对应位。


来自Go 编程语言


例子:


package main

import "fmt"


func main(){

    var x uint8 = 1

    var y uint8 = 1 << 2


    fmt.Printf("%08b\n", x &^ y);


}  

结果:


00000001


查看完整回答
反对 回复 2021-11-29
?
大话西游666

TA贡献1817条经验 获得超14个赞

Go 表达式的 C 等价物x &^ y只是x & ~y. 这就是字面上的“ xAND(按位非y)”。

规范算术运算符部分描述&^为“位清晰”操作,它给出了你想用它做什么的想法。作为两个单独的操作,~y将每个位转换为零,然后将清除x. 每个零位将转换为 1,这将保留x.

因此,如果您认为x | y是一种x基于掩码常量打开某些位的方法y,那么x &^ y做相反的事情并关闭这些相同的位。


查看完整回答
反对 回复 2021-11-29
  • 2 回答
  • 0 关注
  • 255 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信