476.number-complement.go 163 B

12345678910
  1. func findComplement(num int) (res int) {
  2. if num == 0 {
  3. return 1
  4. }
  5. mask := 0
  6. for i := num; i != 0; i >>= 1 {
  7. mask = (mask << 1) | 1
  8. }
  9. return mask ^ num
  10. }