wer immer strebend sich bemüht, den können wir erloesen (j.w.goethe)

Verwandlung mit Perl

Ein Problem, welches in der Informatik immer wieder auftritt ist das Umwandeln von Zahlen in unterschiedliche numerische Repräsentationen. Hier kann Perl helfen. Wie immer gibt es aber mehr als einen Weg, um das Problem zu lösen:

Mit dem in Perl eingebauten "0x"-Mechanismus:

$int = 0xCAFE;
$dec = sprintf("%d", $int);
$dec = 0xCAFE;
Unter Verwendung der hex-Funktion:
$int = hex("CAFE");
$dec = sprintf("%d", $int);
$dec = hex("CAFE");
Mit "pack":
$int = unpack("N",pack("H8",substr("0" x 8 . "CAFE",-8)));
$dec = sprintf("%d", $int);
$dec = unpack("N",pack("H8", substr("0" x 8 . "CAFE",-8)));
Mit "sprintf":
$hex = sprintf("%X", 3735928559);
$hex = sprintf("%X", 3735928559);
$hex = sprintf("%x", 3735928559);
$bin = sprintf("%b", 3735928559);
$oct = sprintf("%o", 3735928559);
Mit "unpack":
$hex = unpack("H*", pack("N", 3735928559));
Mit der eingebauten Konvertierung von Zahlen mit führenden Nullen:

$int = 033653337357;
$dec = sprintf("%d", $int);
$dec = 033653337357;
Mit der oct-Function:
$int = oct("33653337357");
$dec = sprintf("%d", $int);
$dec = oct("33653337357");
Mit "ord" und "pack":
my $input = "10110110";
$decimal = ord( "0b$input" );
$decimal = ord(pack('B8', '10110110'));
Mit "pack" und "unpack" für lange Zeichenketten
$int = unpack("N", pack("B32", 
       substr("0" x 32."11110101011011011111011101111",-32)));