hex-Zahl mit 0 auffülen
alligator
- perl
Hi,
ich hab nen kleine Prob.
Ich hab ne Liste mit Hex-Zahlen und würde die gerne mit 4 Nullen auffüllen.
Versuch 1:
{
printf "%04d\n", $1 }
}
Geht nicht was ja auch logisch ist, da es ja keine Ganzzahl ist.
Versuch 2:
{
printf "%04s\n", $1 }
}
Geht auch nicht - warum -> keine Ahnung
Hat jemand ne Idee?
Danke.
cya
alligator
Hi,
Ich hab ne Liste mit Hex-Zahlen und würde die gerne mit 4 Nullen auffüllen.
Versuch 1:
{
printf "%04d\n", $1 }
}
Geht nicht was ja auch logisch ist, da es ja keine Ganzzahl ist.Versuch 2:
{
printf "%04s\n", $1 }
}
Geht auch nicht - warum -> keine Ahnung
Auch logisch, weil es ja auch kein String ist.
Hat jemand ne Idee?
verwende %x als Formatsymbol:
my $zahl = 0x3f;
printf("%4.4x\n",$zahl);
Ausgabe: 003f
mfG,
steckl
Hi aligator,
nehmen wir mal an, Du willst, daß das Ergebnis immer aus 10 Zeichen besteht. Wenn die hex-Zahl kleiner als 10 Zeichen ist, dann soll von links her kommend die fehlenden Stellen mit "0" aufgefüllt werden.
#!/usr/bin/perl
$a = "a1b2";
$b = length($a);
print "0" x (10-$b) . $a . "\n";
So, $a enthält die hex-Zahl, $b die Länge der hex-Zahl in Zeichen.
print "0" x 5 --> schreibe 5 mal "0" --> "00000"
Wenn das Skript also von 10 die Länge der Hex-Zahl abzieht, erhält es die Anzahl der "0", die es ausgeben soll. Danach wird die Hex-Zahl geschrieben und zum Schluß das "\n".
Habe ich Dich richtig verstanden?
see you later, alligator (sorry, aber das paßt gerade so schön)
Hans