go-位操作符

&      位运算 AND
| 位运算 OR
^ 位运算 XOR
&^ 位清空 (AND NOT)
<< 左移
>> 右移
// 获取0-n之间的所有偶数
func even(a int) (array []int) {
for i := 0; i < a; i++ {
if i&1 == 0 { // 位操作符&与C语言中使用方式一样
array = append(array, i)
}
}
return array
}

// 互换两个变量的值
func swap(a, b int) (int, int) {
a ^= b // 异或等于运算
b ^= a
a ^= b
return a, b
}

// 左移、右移运算
func shifting(a int) int {
a = a << 1
a = a >> 1
return a
}

// 取反操作
func nagation(a int) int {
// 注意: C语言中是 ~a+1这种方式
return ^a + 1 // Go语言取反方式和C语言不同,Go语言不支持~符号。
}