"&^"是什么运算符,作用是什么?

"&^"叫什么?怎么算?用途在哪?

共 5 个回复


jimmykuu

位运算符等价于and not,即a &^ b == a & (^b)。如果想不出用在哪里,就说明你用不着。

# 0

kzzhr

数字电路中常用的一个逻辑:与非门。

在开发底层的时候或许可以快一点。

# 1

chenhao

看了下与非门定义,对不上.不过还是谢谢你. 在go官网有介绍这种运算吗?

# 2

jimmykuu

这就是个简单的位运算符:

1 &^ 1 
1 &^ 0
0 &^ 1
0 &^ 0

打印出来看看结果如何

# 3

cuiweixie

golang的源码里有用到这个操作符

func heapBitsSetTypeNoScan(x uintptr) {
    h := heapBitsForAddr(uintptr(x))
    *h.bitp &^= (bitPointer | bitMarked) << h.shift
}
# 4