008
29.08.2003, 15:50 Uhr
~RHBaum
Gast
|
Zitat: |
niels_ole_salscheider postete Aber ein bisschen größere Zahlen wären nicht schlecht. Hast du einen Link, wo steht, wie so was in etwa geht?
|
Noe, aber habs mal rudimentaer sowas aehnliches fuer 128 bit machen durfen ...
Also fuer 2 mal int (also 64bit interger) kannst du locker UINT64 oder INT64 nehmen, das bringen viele compiler schon mit (oder such mal nach ULONGLONG etc. )
der weg mit den structs ist schon mal richtig ...
Fuer groessere Ints ... gehts ohne umwege unter C nicht, oder du aenderst deinen compiler ... mit umwegen = du schreibst fuer alle Standard-Operatoren eine spezielle ersatz-funktion ... so nach dem Motto int AddLargeInteger(MyLargeIntStruct * pTarget, MyLargeIntStruct Summand);
In C++ kannst das ein bisser komfortabler machen, in dem dir ne Class fuer die Integers schreibst, die dann nen festes Feld von ints oder bytes hat, und alle Operanden ueberlaedst ... ist am anfang ne Menge arbeit, dafuer kannst mit der class genau so arbeiten wie mit nem eingebauten Datentyp ...
Zuweisung und vergleiche solten recht easy sein ... Addition und Subtraction ... dazu solltest dir mal binaeroperationen , also shiftleft shiftright etc anschauen ...
bei multiplication und division wirds dan schon etwas schwieriger ... viel spass beim stoebern in der literatur ... ich habs damals ned gebraucht
Und wenn du gern als Martyrer sterben willst, kannst dass auch mit einem dynamischen array of bytes oder ints machen ... vergleiche und zuweisungen sind da noch ok, addition und subtraktion vielleicht am rande der verzweiflung machbar ... aber wenn du nen 128Bit Int mit nem 64 bit int multiplizierst, und es soll dann nen 256 bit Int als ergebniss rauskommen, ... naja, viel spass dir und der CPU :-)
Oder Du machst es ueber string-mathematik ... da hat wer schon mal nen link gepostet, habs mir aber ned so angeschaut .... weiss also ned wo da die grenzen sind. Wenn man weiss, wie cpu aufwendig string operationen sind, wird man sowas wirklich nur im absoluten notfall nehmen ...
Ciao ...
--edit: quote verschönert. Dieser Post wurde am 29.08.2003 um 15:54 Uhr von 0xdeadbeef editiert. |