Hallo,
Zitat von
xaromz:
wo werden denn hier Bits manipuliert? Da werden doch nur (Dezimal-)Zahlen addiert. Und das ist auch korrekt so.
Ich denke, beides ist korrekt. Natürlich werden 2 Dezimalzahlen addiert, man kann es aber auch als Manipulation eines Bits betrachten. Und in diesem Fall sollte man dann Christians Hinweis beachten. So oder so - Klaus' Routine arbeitet leider nicht ganz korrekt. Der Zugriff auf das Zeichen mit Index 0 ist nicht zulässig, und die Wertigkeit der einzelnen Bits wird falsch berechnet.
Ich würde es so lösen:
Delphi-Quellcode:
function BinToInt (const Value: String): Cardinal;
var
i : Integer;
begin
Result := 0;
for i := 1 to Length(Value) do
Result := 2 * Result + Ord(Value[i] <> '0');
end;
Gruß Hawkeye