476. 数字的补数
package main
import "fmt"
func findComplement(num int) int {
i := 1
for i <= num {
i = i<<1
}
return i - num - 1
}
func main() {
fmt.Println(findComplement(5))
}
1 5的二进制是101 取反就是010 实际上就是101和111的异或运算
2 111的求解过程就是获取5最高为1总位数3的全为1的的过程
func findComplement(num int) int {
tmp := num
n :=1
for tmp>0 {
n=n<<1
tmp=tmp>>1
}
n=n-1
return num^n
}