Um mit bieliebig grossen Zahlen zu rechnen, benötigt man nur ein bisserl Gehirnschmalz und eine Erinnerung, wie man das selbst 'schriftlich' ausrechnet.
Deine Zahl sei ein Array of Byte. In jedem Array-Element ist eine Dezimalziffer. Addieren geht so (ähnlich):
Delphi-Quellcode:
Function BigAdd (A,B : TByteArray) : TByteArray;
Var
i : Integer;
Begin
For i:= 0
to Length (A) - 1
Do Begin
OverFlow := (A[i] + B[i] + OverFlow);
Result [i] := OVerFlow
mod 10;
OverFlow := OverFlow
Div 10;
End;
If OverFlow<>0
Then
Raise Exception.Create ('
Overflow error');
End;
Der o.g. Code geht der Einfachheit halber davon aus, das A und B gleich groß dimensioniert sind.
Differenz bilden geht genauso. Multiplizieren und Dividieren sind auch relativ simpel zu implementieren, eben wie man es schriftlich auch macht.
@cruso: C++ und Delphi sind zu 99% identisch, nur C++ verwendet mehr Sonderzeichen. Ob die Sprachunterschiede nun 1% oder 5% ergeben, ist irrelevant. In dem Fall hier kannst du das auch mit Basic, Fortran, Cobol, PL/1, Algol oder sonst irgendwelchen archaischen Sprachen implementieren. Ich habe so eine Geschichte mal aus Spass auf einem HP-85 programmiert, das ist fast 30 Jahre her.