Flipping bits

Sort by

recency

|

358 Discussions

|

  • + 0 comments

    Golang

    func flippingBits(n int64) int64 {
        return n ^ int64(0xFFFFFFFF)
    }
    
  • + 0 comments
    def flippingBits(n):
        l = format(n,'032b')
        m = []
        for i in range(len(l)):
            m.append(1-int(l[i]))
    
        sum = 0
        for i in range(len(m)):
            sum += int(m[i])*(2**(31-i))
        return sum
    
  • + 0 comments

    Definitely less elegant than other solutions, but for my fellow beginners:

    def flippingBits(n):
    
            # turn 'n' into binary string
            l=format(n, '032b')
            m=[]
    
            # flip all bits
            for i in range(len(l)):
                    m.append(1-int(l[i]))
    
            num=0
            if m[-1]==1:
                    num+=1
            for i in range(len(m)-1):
    
                    # start from the back of the string, skip m [ -1 ]
                    curr=int(m[-i-2])
                    num+=(2*curr)**(i+1)
            return(num)
    
  • + 0 comments

    In Python 3:

    def flippingBits(n):
        x = int('0b11111111111111111111111111111111', base=0)
        return x^n
    
  • + 0 comments

    in python:

    def flippingBits(n): return 2**32-n-1