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