Pythonでのビット反転

pythonでのビット反転では反転を表す「~」を使うんですが

>>> bin(4)
'0b100'
>>> bin(~4)
'-0b101'

いや、'0b11'ってなってほしいんやけど...ということがあったので、

ちゃんと反転するようにプログラム書いた

def int_reverse(num):
    num_len = len(bin(num))-2
    f = 2**num_len-1
    return num ^ f

if __name__ == '__main__':
    num = 4
    print "input: " + bin(num)
    print "output: " + bin(int_reverse(num))

# 出力
# input: 0b100
# output: 0b11