Entwickler-Ecke

Algorithmen, Optimierung und Assembler - Beliebige Zahlensysteme direkt konvertieren


Heiko - So 14.08.05 11:14
Titel: Beliebige Zahlensysteme direkt konvertieren
Kann man irgendwie Zahlensysteme direkt konvertieren ohne einen Zwischenschritt im Dezimalsystem zu haben? So dass man z.b. von Oct direkt in Bin konvertieren kann (man soll aber auch von Zahlensystem mit z.b. der Basis 7 in 3 umwandeln können). Bisher mache ich es immer mit dem Zwischenschritt im Dezimalsystem, aber dadurch habe ich gewisse Einschränkungen nach oben.


alzaimar - So 14.08.05 11:25

Imho kannst Du Dir so eine Routine schreiben, aber das Zwischenergebnis wird immer eine Dezimalzahl sein, weil eben dein Rechner damit rechnet.
Wenn bei Dir die Performance keine so grosse Rolle spielt, dann schreibe Dir zwei Konvertierer (AnyToTen und TenToAny) mit Hilfe der TBigInt-Klasse. Dann hast Du keine Einschränkungen mehr bezüglich der Zahlengröße. TBigInt gibts irgendwo im Internet und realisiert Ganzzahlen mit beliebig vielen Stellen.


Heiko - So 14.08.05 12:22

Gibt es für bei Klasse auch modulo? Oder wie macht man dort die Rest ermittlung, denn hier [http://cvs.sourceforge.net/viewcvs.py/*checkout*/bigint/Bigint/TBigInt/UnitBigInt.pas?rev=1.1] scheint modulo nicht direkt implementiert zu sein.


alzaimar - So 14.08.05 12:30

Ich kenn die Klasse nicht, aber dann schreib Dir doch einfach ein modulo.

Quelltext
1:
Modulo (a,b) = a - (a div b)*b