位运算技巧整理

判断x是否为 2 的幂

「二进制枚举子集」

枚举二进制集合 x 的所有子集步骤:

示例代码

func main() {  
   x := 0b100111  
   for sub := x; sub != 0; sub = (sub - 1) & x {  
      fmt.Printf("%07b %d\n", sub, sub)  
   }  
}

lowbit