![ein Kapitel weiter](../weiter.gif)
Um einen String in eine Hexdezimale oder Oktale Zahl zu konvertieren gibt es die Funktionen
hex() und oct()...
#!/usr/bin/perl -w
use strict;
my $zugriff = "0750";
my $adress= "0xff";
print oct($zugriff), "\n"; #488
print hex($adress), "\n"; #255
Mit diesen beiden Funktionen wandeln sie Hex.-oder-Oktalzahlen in Dezimalzahlen um. Und nicht
wie man schnell annehmen würde umgekehrt. Die Funktion oct() wird nicht auf Richtigkeit der Oktalen Zahleneingabe überprüft. Dies machen wir mit einem regulärem Ausdruck der überprüft ob der String mit '0' anfängt und keinem 'x' folgt...
/^0[^x]\d*/
Wir wollen gleich ein kleines Beispiel schreiben das Strings in Hexdezimal oder Oktale Zahlen
ausgibt...
#!/usr/bin/perl -w
use strict;
print "Bitte geben sie ein Zahl in irgendeiner Form ihrer Wahl ein : ";
chomp($_=<>);
if(/^0[^x]\d*/){
print "Die Zahl ist eine Oktale : $_ -> " . oct($_) . "\n";
}
elsif(/^0x\d*/){
print "Die Zahl ist eine Hexdezimale : $_ -> " . hex($_) . "\n";
}
else{
print "Sie gaben ein : $_ \n";
}
Hier haben wir reguläre Ausdrücke verwendet um zwischen Oktaler und Hexdezimaler oder auch keiner der beiden Zahlendarstellungen als Strings unterscheiden können.
![ein Kapitel weiter](../weiter.gif)
© 2001,2002 Jürgen Wolf
|