2015-03-11 3 views
1

Это код, который мне дал;Пожалуйста, помогите объяснить этот код

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) 

Любая помощь appretiated, большое спасибо

+1

Функция преобразует данные из двоичных в денарные («нормальные») числа. – user3590169

ответ

0

Представьте, что вы хотели, чтобы понять, что последовательность цифр «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. Это то, как работают системы нумерации.

+0

thankyou, это было очень полезно – Tobbolly

Смежные вопросы