ein Kapitel zurück                                           ein Kapitel weiter

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 zurück          nach oben           ein Kapitel weiter


© 2001,2002 Jürgen Wolf