das sollte sich noch selbst erklären.
Code:
for c := 1 to Length(b) do
mit der schleife nimmst du jedes einzelne zeichen aus dem binärstring ...
Code:
i := i + (StrToFloat(b[ c]) * Power(2, Length(b) - c));
... und dann rechnest du. mit strtofloat() machst du aus dem bit, das du gerade hast eine zahl. diese zahl multiplizierst du einfach mit dem ergebnis von 2 hoch der stelle von diesem bit.
zur laufzeit kriegst du damit dann das gleiche ergebnis wie in folgendem beispiel:
i = 0 // vor der schleife
i = i + 1 * 2^4 // erster durchlauf
i = i + 0 * 2^3 // zweiter durchlauf
i = i + 1 * 2^2 // dritter durchlauf
i = i + 0 * 2^1 // vierter durchlauf
i = i + 0 * 2^0 // fünfter durchlauf
natürlich kannst du das auch so in den code schreiben, aber eine schleife ist allerdings wesentlich schneller und flexibler, denn dadurch kann der binärstring beliebig lang sein.