鱼C论坛

 找回密码
 立即注册
查看: 1383|回复: 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了


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


  1. def mybin(x):
  2.     result = ''
  3.     i = 0
  4.     while x:
  5.         result += str(x % 2)
  6.         x = x // 2
  7.         i += 1
  8.     return result[::-1]


  9. a = int(input("请输入一个正整数,求它的二进制"))
  10. print("它的二进制为%s" % mybin(a))
复制代码
T5)W2WA%QMYJ9{001RHP7P1.png
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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


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

报错是列表的索引超出范围了~
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-15 20:07:08 | 显示全部楼层
?不是list1[i]吗?为什么变成list[i]了?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

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

好的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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




哈哈 你这..... result = 0 了 然后再拿去乘 任何数不是都为零拉
小甲鱼最新课程 -> https://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了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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


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


  1. def mybin(x):
  2.     result = ''
  3.     i = 0
  4.     while x:
  5.         result += str(x % 2)
  6.         x = x // 2
  7.         i += 1
  8.     return result[::-1]


  9. a = int(input("请输入一个正整数,求它的二进制"))
  10. print("它的二进制为%s" % mybin(a))
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

评分

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

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-21 22:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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