go中&^(按位置零)符号的含义

2018-05-09  本文已影响0人  carrys17

go中有一个 &^ 的运算符,它代表的是按位置零

首先来看下几个输出例子:

i := 1 &^ 0
fmt.Println("1 &^ 0 -- ",i)
i = 1 &^ 1
fmt.Println("1 &^ 1 -- ",i)
i = 0 &^ 1
fmt.Println("0 &^ 1 -- ",i)
i = 0 &^ 0
fmt.Println("0 &^ 0 -- ",i)

fmt.Println("")

j := 2 &^ 0
fmt.Println("2 &^ 0 -- ",j)
j = 2 &^ 2
fmt.Println("2 &^ 2 -- ",j)
j = 0 &^ 2
fmt.Println("0 &^ 2 -- ",j)
j = 0 &^ 0
fmt.Println("0 &^ 0 -- ",j)

输出结果为:

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

2 &^ 0 --  2
2 &^ 2 --  0
0 &^ 2 --  0
0 &^ 0 --  0

可以看出。结果是又右边的数值决定的。

结论:

z = x &^ y

如果y非零,则z为0
如果y为零,则z为x

上一篇 下一篇

猜你喜欢

热点阅读