我们可以用以下算法实现Python中正整数的十进制到二进制转换,该算法以整数n为输入,并返回包含n的二进制表示的1和0的字符串。
编写一个函数int_to_bin_string(n) (在int_to_bin_string.py中),它接受一个非负整数n,并返回1和0的字符串。
我们不允许使用任何内置的python函数将数字转换为字符串,反之亦然。
def int_to_bin_string(n):
if n == 0:
return "0"
s = ''
while n > 0:
if n % 2 == 0:
ch = "0"
else:
ch = "1"
s = s + ch
n = n/2
return s这就是我试过的。当我尝试int_to_bin_string(255)时,我得到了'1',而不是‘111111’。
,它现在起作用了!
发布于 2013-10-09 00:13:15
对于第二行到最后一行,您需要
n = n/2 发布于 2013-10-09 00:14:32
你有一个提前返回的回报。它需要在你的时间循环之外,这就是为什么你只能得到一个字符。也应该是n= n/2。
另外,查看第一个return语句,它返回一个整数而不是一个字符串。
发布于 2013-10-09 00:16:18
您可以使用python的关键功能。
bin( value ) # returns a string like '0b110110'如果你只想要数字的话就拿一块吧..。bin( value )[2:]
https://stackoverflow.com/questions/19260791
复制相似问题