go运算符
package main import ( "fmt" ) func main() { fmt.Println(^2) }
-3
package main import ( "fmt" ) func main() { fmt.Println(1 << 10) }
[ `go run test1.go` | done: 193.264246ms ]
1024
/* 6 : 0110 11: 1011 ---------------------- & 0010 = 2 // 逻辑与 | 1111 = 15 // 逻辑或 ^ 1101 = 13 //两个都是1的话不成立
&^ 0100 = 4 //如果第二位是1的话,就强制把第一个改为0,
package main import ( "fmt" ) /* 6 : 0110 11: 1011 ---------------------- & 0010 = 2 // 逻辑与 | 1111 = 15 // 逻辑或 ^ 1101 = 13 //两个都是1的话不成立 &^ 0100 = 4 //如果第二位是1的话,就强制把第一个改为0, */ func main() { fmt.Println(6 & 11) fmt.Println(6 | 11) fmt.Println(6 ^ 11) fmt.Println(6 &^ 11) }
[ `go run test1.go` | done: 174.231504ms ]
2
15
13
4
很特别的运算符.