Forum: Mikrocontroller und Digitale Elektronik Hex werte 2stellig ausgeben


von Helge (Gast)


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

von Oliver (Gast)


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);
}

von Helge (Gast)


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

von CCC (Gast)


Lesenswert?

Hmm..
probiers mal mit printf("%02x", i)

so wärs im standard definiert

von Helge (Gast)


Lesenswert?

Hallo
Das war ein guter Tip.Mit %02X gehts.So weit war ich auch schon mal,hab 
allerdings nur 2 geschrieben (ohne 0).Dank euch für die tips.
Gruß helge

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.