请有人帮忙解释一下这段代码

时间:2015-03-11 09:58:02

标签: binary python-2.6

这是我给出的代码;

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)

任何帮助都是有意义的,而不是

1 个答案:

答案 0 :(得分:0)

想象一下,你想要理解数字序列“6”,“9”,“2”是什么意思。你可以遵循这个逻辑:

  1. 从0开始

  2. 将您所在的数字乘以10并添加您所在的数字。

  3. 转到下一个数字。

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

  5. 转到第2步。

  6. 所以,让我们试试“6”,“9”,“2”。

    我们从0开始。

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

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

    代码使用2,因为它处理基数2而非基数10的数字。这就是编号系统的工作方式。