Wie groß sollen die binärzahlen eigentlich sein ? Ich frage weil es eigentlich idiotisch ist auf einem Binären Rechner, sprich dem Computer, mit Strings statt mit Integern zu arbeiten. Ein Integer/Cardinal/Int64 ist nichts anderes wie eine Binärzahl. Also einfach den Binären String in einen Int64 umgewandelt und dann damit gerechnet. Zur Ausgabe wieder in einen Binären String umwandeln.
Delphi-Quellcode:
function BINToInt(const Value: String): Int64;
begin
Result := 0;
for I := Length(Value) downto 1 do
Inc(Result, Result + Ord(Value[I]) - Ord('0'));
end;
function IntToBIN(Value: Int64): String;
begin
Result := StringOfChar('0', 63);
I := 0;
while Value <> 0 do
begin
if Odd(Value) then Result[I] := '1';
Value := Value shr 1;
Inc(I);
end;
end;
Gruß Hagen