sehr große Integer nach HEX umwandeln
Thomas
- perl
Hallo,
ich bin PERL-Newbie, habe mich aber schon etwas damit beschäftigt und habe folgendes vor:
a) Berechnung mit großen Integerzahlen durchführen (max. 17 Stellen), z.B. 1234567890123456*18
b) das Ergebnis daraus nach HEX wandeln (ca. 14 HEX-Stellen)
Habe schon Math::BigInt; probiert für a), scheitere dann aber an b) (z.B. mit sprintf), da die größte HexZahl FFFFFFFF ist.
Zu erwähnen ist noch, das ich viele Zahlen derart zu verarbeiten habe, also Geschwindigkeit eine Rolle spielt, was ev. wieder gegen BigInt spricht.
Vielleicht kennen die Profis ja programmtechnische Kniffe mit PERL um mein Ziel zu erreichen (Aufteilen der großen Zahl in mehrere Teile, Rechnen mit Fließkomma statt Integer, etc...) Mir fehlt da als Newbie leider die Erfahrung.
Vielen Dank!
Habe schon Math::BigInt; probiert für a), scheitere dann aber an b) (z.B. mit sprintf), da die größte HexZahl FFFFFFFF ist.
Math::BigInt bietet eine Methode as_hex an, z.B.
use Math::BigInt;
my $z = Math::BigInt->new('1234567890123456' x 18);
print $z->as_hex;
Zu erwähnen ist noch, das ich viele Zahlen derart zu verarbeiten habe, also Geschwindigkeit eine Rolle spielt, was ev. wieder gegen BigInt spricht.
Schau Dir mal die BigInt-Benchmarks an, scheint so, als ob die neuen Versionen durchaus gute Performance bieten.
Siechfred