Große Zahlen in Perl

  &nbsP;
PerlPerl Scripts für CGI und Systemverwaltung
x  

Große Zahlen in Perl

   

Große ganze Zahlen

Perl-Modul Math::BigInt

x
 

Beispiel: Potenzen von 2

Das Beispiel berechnet beliebig viele Potenzen von 2, hier bis 2^128

Das Objekt $z wird mit der Methode Math::BigInt->new() als große ganze Zahl erzeugt und in einer Schleife mit der Methode bmul() verdoppelt.

Einige der berechneten Daten verdienen einen Kommentar:
2^8: Byte, kleinste adressierbare Einheit aller derzeitigen PC.
2^21: (Derzeitige) Anzahl von → Unicode-Zeichen
2^24: Anzahl aller → TrueColor-Farben
2^31: Das durchschnittliche Lebensalter eines Menschen in Sekunden ist nur wenig größer.
2^32: Wortbreite der meisten derzeit laufenden PC. Häufig verwendeter Variablen-Typ in allen Programmiersprachen. → IPv4-Adressen und der → Unix-Timestamp verwenden 32 Bit.
2^48: → MAC-Adressen ('Hardware'-Adressen von Netzwerk-Interface) verwenden 48 Bit.
2^49: Größte 2er-Potenz, die mit Standard → Gleitkomma-Zahlen des Typs 'Double Precision' noch fehlerfrei darstellbar ist. Die nächste Zahl 2^50 weist bereits einen Fehler in der letzten Stelle auf.
2^59: Ungefähres Alter unseres Universums in Sekunden
2^64: Wortbreite aller PC neueren Datums.
2^128: Anzahl aller möglichen → IPv6 Adressen
#!/usr/bin/perl
use strict;
use Math::BigInt;
my($n);
my $z=Math::BigInt->new(1);
for ($n=1;$n<=128;$n++) {
$z->bmul(2);
print "2^$n.=.$z.\n";
}
Ausgabe (ausgewählte Zeilen):
2^1=2
2^2=4
2^8=256
2^21=2097152
2^24=16777216
2^31=2147483648
2^32=4294967296
2^48=281474976710656
2^49=562949953421312
2^50=1125899906842624
2^59=576460752303423488
2^64=18446744073709551616
2^127=170141183460469231731687303715884105728
2^128=340282366920938463463374607431768211456

Kapitel

   

XHTML CSS