博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Python 十进制转二进制

Posted on 2009-07-31 16:11  lake.cn  阅读(1916)  评论(2编辑  收藏  举报
#!/usr/bin/python

def bin(x):
        result 
= ''
        x 
= int(x)
        
while x > 0:
                mod 
= x % 2
                x 
/= 2
                result 
= str(mod) + result
        
return result


def dec_to_bin(x):
     c,m 
= list(oct(x)), ['000','001','010','011','100','101','110','111']
     
return str(int(''.join([m[int(i)] for i in c])))


>>> dec_to_bin(12345)
'11000000111001'
>>> int('11000000111001',2)
12345


>>> bin = lambda n : (n > 0) and (bin(n/2+ str(n%2)) or '' 
>>> bin(12345)
'11000000111001'