Hexzahl -> Binärzahl
MrWurf
- perl
Hallo,
ich möchte aus einer Hexadezimalzahl eine Binärzahl machen.
Die hex-Funktion liefert ja nur Dezimalzahlen. Da gibts doch sicher eine brauchbare Funktion oder Modul, oder?
thx
MrWurf
Tach,
ich möchte aus einer Hexadezimalzahl eine Binärzahl machen.
Die hex-Funktion liefert ja nur Dezimalzahlen. Da gibts doch sicher eine brauchbare Funktion oder Modul, oder?
Idee: Die entsprechenden Nibbles in einem Array ablegen und dann einfach Stelle für Stelle durchgehen.
mfg
Woodfighter
hallo Woodfighter,
ok, ist auch eine Variante. Kann mir aber nicht vorstellen, dass ich der erste mit diesem Problem bin und es kein passendes Modul gibt.
Immerhin geht es hier um Perl.
Ich habe inzwischen folgenden schmutzigen Trick gefunden:
sub dec2bin {
my $str = unpack("B32", pack("N", shift));
return $str;
}
sub bin2dec {
return unpack("N", pack("B32", substr("0" x 32 . shift, -32)));
}
(siehe auch perldoc -f pack)
funktioniert nur leider nicht mit mehr als 32 Bit.
Gruß
MrWurf
Tach,
ok, ist auch eine Variante. Kann mir aber nicht vorstellen, dass ich der erste mit diesem Problem bin und es kein passendes Modul gibt.
ich halte das Problem für dermaßen simpel, dass ein Modul dafür wohl stark übertrieben wäre. Aus der Perl-Doku:
"How do I convert from decimal to binary
Using unpack;
$bin = unpack("B*", pack("N", 3735928559));
Using Bit::Vector:
use Bit::Vector;
$vec = Bit::Vector->new_Dec(32, -559038737);
$bin = $vec->to_Bin();
The remaining transformations (e.g. hex -> oct, bin -> hex, etc.) are left as an exercise to the inclined reader."
Da ich Perl nur rudimentär "spreche", mußt du diese Übung wohl selber machen ;-)
mfg
Woodfighter