鱼C论坛

 找回密码
 立即注册
查看: 1451|回复: 15

[已解决]使用递归编写一个十进制转换为二进制的函数

[复制链接]
发表于 2020-7-10 21:07:33 | 显示全部楼层 |阅读模式

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

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

x

请问为什么下面这段程序运行的结果前面有 0b ?(0b1000000)
def Dec2bin(x):
     result = ''
     if x:
          result = bin(x//2)
          return result+str(x%2)
     else:
          return result
print(Dec2bin(64))
最佳答案
2020-7-13 19:52:45
A.Lyapunov 发表于 2020-7-13 19:50
不好意思,我基础太差,还是没太明白。那个函数不是自己写的、自己定义功能的吗?

对啊,功能就是转换2进制
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-7-10 21:09:00 | 显示全部楼层
代表二进制呀,还有0x,0o等等等等,都是代表不同的进制。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-10 21:09:01 | 显示全部楼层



0b 、0o、 0x 都是为了和 十 进制区分开来的

0b 表示二进制

0o 表示八进制

0x 表示十六进制



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

使用道具 举报

 楼主| 发表于 2020-7-11 10:22:12 | 显示全部楼层
Hello. 发表于 2020-7-10 21:09
代表二进制呀,还有0x,0o等等等等,都是代表不同的进制。

知道0b是代表2进制,我问的是哪一行代码会打印“0b”,Python知道你在转化为2进制,默认就会打印吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-11 10:43:01 | 显示全部楼层
本帖最后由 Twilight6 于 2020-7-13 09:10 编辑


我把引号去掉,程序报错了、
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-13 08:45:57 | 显示全部楼层
本帖最后由 Hello. 于 2020-7-13 08:53 编辑
A.Lyapunov 发表于 2020-7-11 10:43
我把引号去掉,程序报错了、


抱歉,没认真审题

我问的是哪一行代码会打印“0b”?


打印肯定是因为最后的 print 函数才打印出结果的,函数调用过程中没有 print 函数 就不会自动打印出结果

而函数调用只是返回了 0b1000000 这个字符串,然后被外面的 print 函数所打印出 0b1000000 否则是不会显示这个字符串的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-13 16:08:03 | 显示全部楼层
函数调用不是应该只返回一串数字吗,请问为什么会返回“0b”加一串数字?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-13 19:28:47 | 显示全部楼层
Hello. 发表于 2020-7-13 08:45
抱歉,没认真审题

函数调用不是应该只返回一串数字吗,请问为什么会返回“0b”加一串数字?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-13 19:49:35 | 显示全部楼层
不好意思,我基础太差,还是没太明白。那个函数不是自己写的、自己定义功能的吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-13 19:50:29 | 显示全部楼层
Hello. 发表于 2020-7-13 19:44
你调用了一个转换成二进制的函数吖

不好意思,我基础太差,还是没太明白。那个函数不是自己写的、自己定义功能的吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-13 19:52:45 | 显示全部楼层    本楼为最佳答案   
A.Lyapunov 发表于 2020-7-13 19:50
不好意思,我基础太差,还是没太明白。那个函数不是自己写的、自己定义功能的吗?

对啊,功能就是转换2进制
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-13 19:58:31 | 显示全部楼层
Hello. 发表于 2020-7-13 19:52
对啊,功能就是转换2进制

好吧,还是有点蒙。只能慢慢学了、谢谢你!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-2 18:54:34 | 显示全部楼层
bin() 返回一个整数 int 或者长整数 long int 的二进制表示。
所以是在这里,被python识别你想要做二进制的转化
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-2 18:55:49 | 显示全部楼层
RhettWong 发表于 2020-8-2 18:54
bin() 返回一个整数 int 或者长整数 long int 的二进制表示。
所以是在这里,被python识别你想要做二进制 ...

bin(x//y),任意x,y都会打印0b开头的字符串
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-2 18:58:33 | 显示全部楼层
话说回来,
>>> bin(64)
'0b1000000'


你定义的这个函数,仿佛没有什么必要?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-5 15:50:47 | 显示全部楼层

当时只是在用这个例子练习编程
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-19 17:07

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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