经典代码片段

  1. 移位 操作对象在左边,操作目标在右边
1
2
3
4
5
//1的二进制向左移位10位
1<<uint8(10)

// 1024 的二进制向右移位8位
1024>>uint8(8)

2.and 和 or 运算符 & |

1
2
// 1 是非判断
1&uint(3) // 判断是否奇偶数
  1. 不使用+号运算符计算两数相加
1
2
3
4
5
6
7
8
9
func add(a, b int) int {
	if b == 0 {
		return a
	}
	sum := a ^ b
	carry := (a & b) << 1
	fmt.Println(sum,"|||",carry)
	return add(sum, carry)
}