mos*_*smo 14 bit-manipulation go
我不能真正谷歌名称和NOT并获得任何有用的结果,这个运算符究竟是什么,我怎么能用像C这样的语言呢?我检查了规范,并没有任何帮助,但有一个列表,它是&^
(不是).
小智 6
&^ 运算符是位清(AND NOT):在表达式 z = x &^ y 中,如果 y 的相应位为 1,则 z 的每一位为 0;否则它等于 x 的相应位。
来自Go 编程语言
例子:
package main
import "fmt"
func main() {
var x uint8 = 0b00001111
var y uint8 = 0b00000100
var z uint8 = 0b00001011
if x&^y == z {
fmt.Printf(" ( x) (%08b)\n", x)
fmt.Printf("& (^y) & (%08b)\n", ^y)
fmt.Printf("------ = ------------\n")
fmt.Printf(" ( z) (%08b)\n", x&^y)
}
}
Run Code Online (Sandbox Code Playgroud)
结果:
Run Code Online (Sandbox Code Playgroud)( x) (00001111) & (^y) & (11111011) ------ = ------------ ( z) (00001011)