鱼C论坛

 找回密码
 立即注册
查看: 1166|回复: 8

[已解决]python将十进制转化为二进制

[复制链接]
发表于 2020-6-15 20:05:47 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
我的思路是把每次除以2得到的余数存放在list1中,最后用list1把值给result,但是报错了,应该是语法问题,大家帮我看看把
最佳答案
2020-6-15 20:17:18
小甲鱼的铁粉 发表于 2020-6-15 20:12
它是有+的,刚开始result*10是0,它加上list1就不是0了


改成这样呗,你拿去乘的时候有的时候会少一位

def mybin(x):
    result = ''
    i = 0
    while x:
        result += str(x % 2)
        x = x // 2
        i += 1
    return result[::-1]


a = int(input("请输入一个正整数,求它的二进制"))
print("它的二进制为%s" % mybin(a))
T5)W2WA%QMYJ9{001RHP7P1.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-6-15 20:07:04 | 显示全部楼层


贴代码呗 ,发图片效果不如代码~~

报错是列表的索引超出范围了~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-15 20:07:08 | 显示全部楼层
?不是list1[i]吗?为什么变成list[i]了?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-15 20:07:56 | 显示全部楼层
图片那里有问题,a=int(input())那里是没有换行的,应该是我不小心按到了,代码是
def mybin(x):
    result = 0
    i = 0
    list1=[]
    while x:
        list1[i] = x % 2
        x = x // 2
        i += 1
    for i in range(0,len(list1)-1,-1):
        result = result * 10 + list[i]
    return result
a = int(input("请输入一个正整数,求它的二进制"))
print("它的二进制为%d" % mybin(a))
        
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-15 20:09:03 | 显示全部楼层
Twilight6 发表于 2020-6-15 20:07
贴代码呗 ,发图片效果不如代码~~

报错是列表的索引超出范围了~

好的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-15 20:10:22 | 显示全部楼层




哈哈 你这..... result = 0 了 然后再拿去乘 任何数不是都为零拉
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-15 20:12:07 | 显示全部楼层
Twilight6 发表于 2020-6-15 20:10
哈哈 你这..... result = 0 了 然后再拿去乘 任何数不是都为零拉
result = result * 10 + list[i]

它是有+的,刚开始result*10是0,它加上list1[i]就不是0了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-15 20:17:18 | 显示全部楼层    本楼为最佳答案   
小甲鱼的铁粉 发表于 2020-6-15 20:12
它是有+的,刚开始result*10是0,它加上list1就不是0了


改成这样呗,你拿去乘的时候有的时候会少一位

def mybin(x):
    result = ''
    i = 0
    while x:
        result += str(x % 2)
        x = x // 2
        i += 1
    return result[::-1]


a = int(input("请输入一个正整数,求它的二进制"))
print("它的二进制为%s" % mybin(a))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-15 20:20:15 | 显示全部楼层
Twilight6 发表于 2020-6-15 20:17
改成这样呗,你拿去乘的时候有的时候会少一位

评分

参与人数 1荣誉 +5 鱼币 +5 收起 理由
Twilight6 + 5 + 5 鱼C有你更精彩^_^ 谢谢~

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-20 16:18

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表