LF695559 发表于 2020-8-28 16:00:15

请求注释,

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))

baige 发表于 2020-8-28 16:07:38

https://fishc.com.cn/forum.php?mod=viewthread&tid=126144&highlight=17%BD%B2

求资专用 发表于 2020-8-28 16:10:08

本帖最后由 求资专用 于 2020-8-28 16:11 编辑

def Dec2Bin(dec):
    temp = []   #定义空列表和要输出的结果
    result = ''

    while dec:
      quo = dec % 2   #求10进制数对2的余数
      dec = dec // 2#地板除
      temp.append(quo) #将每次求到的余数加入列表中(作为单独元素,不是相加)

    while temp:   #当temp不为空,也就是里面还有之前求得的余数的时候
      result += str(temp.pop()) #从temp的最后取出一个余数作为字符串加到result里(字符串的加法是1+2=12这样的),取出后temp里就没有这个数了。

    return result

print(Dec2Bin(62))

至于为什么对10进制数一直求余数然后把余数从后到前反过来拼在一起就是对应的二进制数那是数学的范围了。你把十进制的数分解成2^n+2^m+……+2^1+2^0的格式就知道了。
页: [1]
查看完整版本: 请求注释,