コンピューターでの論理操作については、次を参照してください: https://blog.csdn.net/weixin_37909391/article/details/131441253
&^ ビット クリア (AND NOT) ビット クリア ビット クリア
操作のルール
- 各ビットについて、右側のオペランドの対応するビットが 0 の場合、結果の対応するビットは左側のオペランドと同じになります。
- 各ビットについて、右側のオペランドの対応するビットが 1 の場合、左側のオペランドの対応するビットに関係なく、結果の対応するビットは 0 になります。
package main
import "fmt"
func main() {
a := 5 // 二进制表示为 0101
b := 3 // 二进制表示为 0011
result := 0
// 按位与
result = a & b // 0001
fmt.Println(result)
// 按位或
result = a | b // 0111
fmt.Println(result)
// 按位非
result = ^a // 1010
fmt.Println(result)
// 按位清零
result = a &^ b // 0100
fmt.Println(result)
// 按位异或
result = a ^ b // 0110
fmt.Println(result)
}