>> binary(3)'11'>>> binary(5)'101'>>>不使用匿名函数:def recursive_get(n): if n == 0: return "" return recursive_get(n//2)_短除法求二进制python">
赞
踩
1、写函数采用 短除法 的方式来算。
>>> binary = lambda n: "" if n==0 else binary(n//2) + str(n%2)
>>> binary(3)
'11'
>>> binary(5)
'101'
>>>
不使用匿名函数:
def recursive_get(n):
if n == 0:
return ""
return recursive_get(n//2) + str(n%2)
print(recursive_get(50000000))
2、采用 python 自带了方法 bin 函数,比如 bin(12345) 回返回字符串 ‘0b11000000111001’, 这个时候在把0b去掉即可:
>>> bin(12345).replace("0b", "")
'11000000111001'
3、也可以采用字符串的 format 方法来获取二进制:
>>> "{0:b}".format(12345)
'11000000111001'
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。