Flipping bits

Sort by

recency

|

356 Discussions

|

  • + 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

  • + 0 comments

    Is long as input/output in the C version expected? It should probably be uint32_t to match spec.

  • + 0 comments

    JAVA solution:

    public static long flippingBits(long n) {
            return ~n & 0xFFFFFFFFL;
        }