Hex werte 2stellig ausgeben

Gast #26283
Lesenswert?

Hallo
Ich habe eine neue Version von Codevision.
Bei der alten konnte ich mit der folgenden Zeile hex Werte 2stellig 
ausgeben:
printf("%#.02X",i)  wenn i=12 wurde 0C ausgegeben
Jetzt wird daraus .02X
Wenn ich printf("%X",i) benutze erhalte ich ein C
Ich habe schon alles mögliche ausprobiert und komme nicht zum zuge.In 
der Anleitung von Codevision kann ich leider auch nichts finden.
Weiß denn wer ein Rat?????
Gruß Helge
Gast #26284
Lesenswert?

Hallo Helge,
wenns nicht geht, ist meist Handarbeit angesagt.
Mit den beiden Routinen wird die Zahl in ein lesbares
Hexformat gebracht.

Kannst sie ja noch anpassen, verschönern und verbessern.

Grüße
Oliver

// f ist Stringgroesse
// reverse dreht den string um
void reverse (Uint16 f, char s[])
{
  int c,i,j;

  for(i=0, j = f-1; i < j; i++, j--)
  {
    c    = s[i];
    s[i] = s[j];
    s[j] = c;
  }
}


// n ist Zahl zum Umwandeln in Hex
// s ist character-String
// f ist Ausgabebreite
void Uint16toHex (int n, char s[], Uint16 f)
{
  Uint16 i, j;

  for (i=0; i < f; i++)
  {
    j = n % 16;
    s[i] = (j<10 ? j+'0':j+'A'-10);
    n /=16;
  }

  reverse(f,s);
}
Gast #26285
Lesenswert?

Hallo Oliver
Danke Dir für den Tip.Ich werd es mal probieren.Ich find es aber 
irgendwie komisch das in einer neueren Version so etwas nicht mehr 
möglich sein soll.Mir gehts ja nur um die Ausgabe. Sie soll ja 2stellig 
erfolgen.Ich habe schon mit if und else etwas erstellt,aber meine 
Umrechnungsroutine fand dies nicht so gut
if(k<=15)
  printf("0%X",k)
else
  printf("%X",k)

Gruß helge

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren