首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数据表示

数据表示
EN

Stack Overflow用户
提问于 2013-10-09 00:12:21
回答 5查看 532关注 0票数 1

我们可以用以下算法实现Python中正整数的十进制到二进制转换,该算法以整数n为输入,并返回包含n的二进制表示的1和0的字符串。

编写一个函数int_to_bin_string(n) (在int_to_bin_string.py中),它接受一个非负整数n,并返回1和0的字符串。

我们不允许使用任何内置的python函数将数字转换为字符串,反之亦然。

代码语言:javascript
复制
    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’。

,它现在起作用了!

EN

回答 5

Stack Overflow用户

发布于 2013-10-09 00:13:15

对于第二行到最后一行,您需要

代码语言:javascript
复制
n = n/2 
票数 1
EN

Stack Overflow用户

发布于 2013-10-09 00:14:32

你有一个提前返回的回报。它需要在你的时间循环之外,这就是为什么你只能得到一个字符。也应该是n= n/2。

另外,查看第一个return语句,它返回一个整数而不是一个字符串。

票数 0
EN

Stack Overflow用户

发布于 2013-10-09 00:16:18

您可以使用python的关键功能。

代码语言:javascript
复制
bin( value ) # returns a string like '0b110110'

如果你只想要数字的话就拿一块吧..。bin( value )[2:]

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19260791

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档