Your task is to ___find the next higher number (int) with same '1'- Bits___.
I.e. as much `1` bits as before and output next higher than input. Input is always an int in between 1 and 1<<30 (inclusive). No bad cases or special tricks... 
### Some easy examples:
```
Input: 129  => Output: 130 (10000001 => 10000010)
Input: 127 => Output: 191 (01111111 => 10111111)
Input: 1 => Output: 2 (01 => 10)
Input: 323423 => Output: 323439 (1001110111101011111 => 1001110111101101111)
```
First some static tests, later on many random tests too;-)!
### Hope you have fun! :-)
def next_higher(value):
    value = list(bin(value)[2:][-1::-1])
    one = value.count('1')
    while True:
        tale = 1
        for i in range(len(value)):
            bite = str((int(value[i]) + tale) % 2)
            value[i] = bite
            tale = 1 if bite == '0' else 0
            if not tale:
                break
        if tale:
            value.append('1')
        if value.count('1') == one:
            break
    return int(''.join(value[-1::-1]), 2)
def next_higher(value):
    value = list(bin(value)[2:][-1::-1])
    one = value.count('1')
    while True:
        tale = 1
        for i in range(len(value)):
            bite = str((int(value[i]) + tale) % 2)
            value[i] = bite
            tale = 1 if bite == '0' else 0
            if not tale:
                break
        if tale:
            value.append('1')
        if value.count('1') == one:
            break
    return int(''.join(value[-1::-1]), 2)