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'