//
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 }
有疑问加站长微信联系(非本文作者)