Быстрый перевод двоичного в десятичное число устно

В метро по дороге в мегу я придумал как быстро в голове переводить (разумно) любое двоичное число в десятичное, если его диктуют по поразрядно, начиная со старшего, разумеется никуда не записывая и не подглядывая.

Например 101100.

От вас требуется только одно - как можно быстрее умножать на 2, что не так трудно, ну и уметь прибавлять единичку :D

Итак, в чём заключается метод:

  1. Ждём пока назовут первую единичку, запоминаем.
  2. Если называют следующий разряд, то умножаем то что запомнили на 2 и добавляем названное число.
  3. Если число кончилось, то в голове - результат! Если нет, возвращаемся на предыдущий шаг.

Ведь не сложно? Посмотрим на примере, пусть названное выше число 101100. Напомню, что предполагается, что называют со старшего разряда, т.е с 101100.

  1. Запоминаем 1
  2. Называют следующий разряд(101100), значит умножаем на 2, то что запомнили, и прибавляем только, что названное, т.е. 1 * 2 + 0 = 2, запоминаем.
  3. Ещё один (101100): 2 * 2 + 1 = 5
  4. Дальше(101100): 5 * 2 + 1 = 11
  5. Повторим(101100): 11 * 2 + 0 = 22
  6. И последнее(101100): 22 * 2 + 0 = 44

Вот и ответ: 44!
Ведь не так и сложно? Аналогично можно оперировать более длинными цепочками нулей и единиц. Собеседника вы поразите, а самому проще станет читать двоичные числа

Кто тесно сталкивался с побитовыми операциями сразу поймёт, что идею мне навеял побитовый сдвиг влево и обычный последовательный регистр сдвига :)

Теперь настало время потренировать себя :)