使用递归编写一个十进制转换为二进制的函数
请问为什么下面这段程序运行的结果前面有 0b ?(0b1000000)def Dec2bin(x):
result = ''
if x:
result = bin(x//2)
return result+str(x%2)
else:
return result
print(Dec2bin(64))
代表二进制呀,还有0x,0o等等等等,都是代表不同的进制。
0b 、0o、 0x 都是为了和 十 进制区分开来的
0b 表示二进制
0o 表示八进制
0x 表示十六进制
Hello. 发表于 2020-7-10 21:09
代表二进制呀,还有0x,0o等等等等,都是代表不同的进制。
知道0b是代表2进制,我问的是哪一行代码会打印“0b”,Python知道你在转化为2进制,默认就会打印吗 本帖最后由 Twilight6 于 2020-7-13 09:10 编辑
Hello. 发表于 2020-7-11 10:33
是的
我把引号去掉,程序报错了、 本帖最后由 Hello. 于 2020-7-13 08:53 编辑
A.Lyapunov 发表于 2020-7-11 10:43
我把引号去掉,程序报错了、
抱歉,没认真审题
我问的是哪一行代码会打印“0b”?
打印肯定是因为最后的 print 函数才打印出结果的,函数调用过程中没有 print 函数 就不会自动打印出结果
而函数调用只是返回了 0b1000000 这个字符串,然后被外面的 print 函数所打印出 0b1000000 否则是不会显示这个字符串的 函数调用不是应该只返回一串数字吗,请问为什么会返回“0b”加一串数字? Hello. 发表于 2020-7-13 08:45
抱歉,没认真审题
函数调用不是应该只返回一串数字吗,请问为什么会返回“0b”加一串数字? 不好意思,我基础太差,还是没太明白。那个函数不是自己写的、自己定义功能的吗? Hello. 发表于 2020-7-13 19:44
你调用了一个转换成二进制的函数吖
不好意思,我基础太差,还是没太明白。那个函数不是自己写的、自己定义功能的吗? A.Lyapunov 发表于 2020-7-13 19:50
不好意思,我基础太差,还是没太明白。那个函数不是自己写的、自己定义功能的吗?
对啊,功能就是转换2进制 Hello. 发表于 2020-7-13 19:52
对啊,功能就是转换2进制
好吧,还是有点蒙。只能慢慢学了、谢谢你! bin() 返回一个整数 int 或者长整数 long int 的二进制表示。
所以是在这里,被python识别你想要做二进制的转化 RhettWong 发表于 2020-8-2 18:54
bin() 返回一个整数 int 或者长整数 long int 的二进制表示。
所以是在这里,被python识别你想要做二进制 ...
bin(x//y),任意x,y都会打印0b开头的字符串 话说回来,
>>> bin(64)
'0b1000000'
你定义的这个函数,仿佛没有什么必要?
RhettWong 发表于 2020-8-2 18:58
话说回来,
当时只是在用这个例子练习编程
页:
[1]