Ich weiss, wie ich als Mensch mit Stift und Papier eine Binärzahl in eine Dezimalzahl umwandle.
Code
0001 1010
= 0 * 2^0
+ 1 * 2^1
+ 0 * 2^2
+ 1 * 2^3
+ 1 * 2^4
+ 0 * 2^5
+ 0 * 2^6
+ 0 * 2^7
= 2 + 8 + 16
= 26
Alles anzeigen
Soweit, so gut. Ein Positionssystem zur Basis 2. Easy.
Jetzt habe ich aber einen Algorithmus gefunden*, der zwar funktioniert, ich aber nicht verstehe, warum er funktioniert.
Code
result = 0
für jede stelle von links {
verdopple result
addiere die stelle
}
8 iterationen:
0
0
0
1
3
6
13
26
Alles anzeigen
Warum funktioniert das Ganze verdammt nochmal? Gibt es eine Umformung, die es auf die erste Berechnung zurückführt?
(* den Pseudocode habe ich aus einem längeren Beispiel einer Hex nach BCD Umwandlung extrahiert)