c = a &^ b
含义:b 转为二进制时,值为1 的位置对应c的位置值为0;c中剩余位置值与a对应位置值相同(即:所谓的位清空操作,把b中1对应位置在c位置上清空),详见下面代码
package main
import "fmt"
func main() {
a := 12
b := 4
c := a &^ b
fmt.Printf("a: %08b\n", a)
fmt.Printf("b:%08b\n", b)
fmt.Printf("c: %#v 二进制:%08b\n",c,c)
/*输出:
a: 00001100
b:00000100
c: 8 二进制:00001000
*/
}