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'