//
xuhh_go_位運算符
project main.go
/*
位移操作 << : 向左移位 可以看做是 乘以2的幾次方
位移操作 >> : 向右移位 可以看做是 除以2的幾次方
and操作 & : 都爲1 纔是1
or 操作 | : 只要有一個是1 那麼就是1
取反 ^ :有一個爲1 則 就是1 兩個1 或者兩個0 全是 0
標誌位操作 &^ : a &^ b = (a^b) & b 其實就是清除標記位
(將a中爲1的位 如果b中相同位置也爲1,則將a中該位置修改爲0,a中其他位不變)
*/
package main
import (
. "fmt"
)
func main() {
var p = Person{"xuhh", "12"}
Println(p)
const a = 2 //0010
const b = 6 //0110
const c = 11 //1011
var d = a ^ c //1001 9
Println(d)
d = b &^ c // 0110 1011
Println(d) // 0100
var a1 = 0
a1 |= 1 << 2 //0100
Print(a1, " ")
a1 |= 1 << 3 // 1100 12 a1 + a1 * 2*2*2
Print(a1, " ")
a1 |= 1 << 4 //0001 1100 28
Print(a1, " ")
a1 = a1 &^ (1 << 2)
Println(a1) // 0001 1000 24
}