10進数を2進数に変換して表示する。

Python2.4で10進数を2進数にする処理が見つからなかったので書きました。

ソース

#!/usr/bin/python

def dec2bin(decimal):
    """ decimal value encode to binary string
    """

    result = []
    while decimal:
        decimal, binary = divmod(decimal,2)
        result.append(str(binary))
    flg = True
    while flg:
        if len(result) != 0 and len(result) % 4 == 0:
            flg = False
        else:
            result.append('0')
    return ''.join(reversed(result))
     

if __name__ == '__main__':
    print "dec2bin(0)   :", dec2bin(0).rjust(15)
    print "dec2bin(10)  :", dec2bin(10).rjust(15)
    print "dec2bin(15)  :", dec2bin(15).rjust(15)
    print "dec2bin(16)  :", dec2bin(16).rjust(15)
    print "dec2bin(255) :", dec2bin(255).rjust(15)
    print "dec2bin(256) :", dec2bin(256).rjust(15)

実行結果

$ python dec2bin.py
dec2bin(0)   :            0000
dec2bin(10)  :            1010
dec2bin(15)  :            1111
dec2bin(16)  :        00010000
dec2bin(255) :        11111111
dec2bin(256) :    000100000000