raorr 发表于 2020-6-21 10:56:57

十进制转二进制问题

def Dec2Bin(dec):
    temp = []
    result = ''

    while dec:
      quo = dec % 2
      dec = dec // 2
      temp.append(quo)

    while temp:
      result += str(temp.pop())

    return result

print(Dec2Bin(62))


咩错,又是我这个垃圾。。。

我自己算了一下,算出来和甲鱼这个得出来的结果有一点点不一样,
甲鱼得出来的结果是111110,我是011110

从62开始循环的话,62%2=0
可以整除啊,没有余数啊,不是应该是0吗

while temp:
      result += str(temp.pop())
然后就是这行代码没太懂

谢谢各位同行啦!

qiuyouzhi 发表于 2020-6-21 11:03:07

你转换完后是需要逆序的,pop方法不加参数的话,默认是弹出最后一个,然后再转换为字符串拼接起来。

Twilight6 发表于 2020-6-21 11:16:54


代码运行结果和甲鱼哥说的一致呀,还有不用说自己垃圾呗哈哈,要自信

while temp:
    result += str(temp.pop())
这个就是将pop弹出的全部拼接回去,因为 temp 是个列表 ,pop函数没填参数默认弹出 最后一个参数

所以就将他倒叙过来了

wp231957 发表于 2020-6-21 13:56:52

看好这里是神马板块
页: [1]
查看完整版本: 十进制转二进制问题