Umwandlung einer Hexadezimalenzahl in eine Dualzahl.

Hier ist ein Beispiel ,wie man eine Hex - Zahl in eine Dual - Zahl umwandeln
kann . Es gibt viele verschiedene Möglichkeiten , das ist nur eine. Mit der
Funktion kann man sich gut die einzelnen Bits eines Hex - Wertes an -
schauen.Sie kann auch gut zur Anzeige genommen werden. Es findet keine
Fehlerkontrolle statt.

Die Funktion wird so aufgerufen:

Ansistring asHexwert = ConvertBin( “1A” );

Funktion :

//----------------------------------------------------------------------
// Umwandlung : Hex - Zahl in Binär - Zahl
// Beide sind AnsiString Variablen
// Buchstaben die nicht im Wertebereich liegen werden
// ignoriert.
//----------------------------------------------------------------------
AnsiString TForm1::ConvertBin( AnsiString asHex )
{
   AnsiString asHelp, asSub, asBin;

   // Länge der Variable bestimmen
   int nSign = asHex.Length();

   // Umwandeln in Grossbuchstaben
   asHelp = asHex.UpperCase();

   for( int n = 1; n < ( nSign +1 ); n++ )
   {
       asSub = asHelp.SubString(n,1);
       if( asSub == "0" ) asBin += "0000";
       if( asSub == "1" ) asBin += "0001";
       if( asSub == "2" ) asBin += "0010";
       if( asSub == "3" ) asBin += "0011";
       if( asSub == "4" ) asBin += "0100";
       if( asSub == "5" ) asBin += "0101";
       if( asSub == "6" ) asBin += "0110";
       if( asSub == "7" ) asBin += "0111";
       if( asSub == "8" ) asBin += "1000";
       if( asSub == "9" ) asBin += "1001";
       if( asSub == "A" ) asBin += "1010";
       if( asSub == "B" ) asBin += "1011";
       if( asSub == "C" ) asBin += "1100";
       if( asSub == "D" ) asBin += "1101";
       if( asSub == "E" ) asBin += "1110";
       if( asSub == "F" ) asBin += "1111";

       // Zur besseren Lesbarkeit
       asBin += " ";
   }
   asBin += "- 2°";
   return asBin;
}  // ConvertBin
 

Wie konvertiere ich einen AnsiString - Wert in einen Integer um ?

Problem : Man hat einen AnsiString - Wert von FA. und  man muss ihn in
einen  Integer umwandeln . Mit der Funktion StrToInt bekommt man eine
Fehlermeldung, weil FA keine Zahl ist.

Lösung : Man muss vor dem Wert FA ein 0x setzen und schon geht alles
ohne Probleme.

Beispiel :

AnsiString asWert = “FA”;
int nWert;

nWert = StrToInt( “0x” + asWert );