I have found a great book: Binary Arithmetics and Boolean Algebra by Angelo G. Gille. He is using a Double-Dablle Method to convert Binary Numbers to Decimal Numbers.
Here is how its done. I have tried to understand/proove why its working. Maybe someone sees it?
2 Answers
$\begingroup$This is the same as Horner's method for evaluating polynomials. It works because
$$a_n2^n+a_{n-1}2^{n-1}+...+a_12+a_0=2(...(2(2(2a_n+a_{n-1})+a_{n-1})...+a_1)+a_0$$
If the formula in general looks obscure, you can try it for small values of $n$. For example, $n=3$: $$2^3a_3+2^2a_2+2a_1+a_0=2(2(2a_3+a_2)+a_1)+a_0$$
$\endgroup$ 1 $\begingroup$A similar thing occurs if someone reads you, digit-by-digit, left-to-right, a base ten numeral:
E.g. The actual numeral is $3702$, but you only get one digit at a time:
$3$. Current value is $3$.
$7$. Current the value is $3\cdot 10+7=37$.
$0$. Current the value is $37\cdot 10+0=370$.
$2$. Current the value is $370\times 10+2=3702$.
End of number. The last current value is the actual value.
At each step, you multiply the previous total by the base and add the next digit.
$\endgroup$