【问题标题】:Please can somebody help to explain this code请有人帮忙解释这段代码
【发布时间】:2015-03-11 09:58:02
【问题描述】:

这是给我的代码;

d = 0

binary = raw_input('Please enter a number between 0 - 11111111 in binary: ')

for digit in binary:
     d = d*2 + int(digit)   
     print d

下面这部分我真的不明白:

     for digit in binary:
          d = d*2 + int(digit)

感谢任何帮助,谢谢

【问题讨论】:

  • 函数正在从二进制转换为十进制(“正常”)数字。

标签: binary python-2.6


【解决方案1】:

假设您想了解数字序列“6”、“9”、“2”的含义。你可以按照这个逻辑:

  1. 从 0 开始

  2. 将您所在的数字乘以 10,然后加上您所在的数字。

  3. 转到下一位。

  4. 如果没有更多数字,请停止。您所在的数字是数字序列编码的数字。

  5. 转到第 2 步。

那么,让我们试试“6”、“9”、“2”吧。

我们从 0 开始。

10*0 + 6 -> 6
10*6 + 9 -> 69
10*69 + 2 -> 692
没有下一位,所以我们停下来。

所以从“6”、“9”、“2”,我们得到数字692,这是正确的。

代码使用 2,因为它处理的是以 2 为底的数字,而不是以 10 为底的数字。这就是编号系统的工作原理。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-06-10
    • 2015-07-14
    • 2018-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多