www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Hex werte 2stellig ausgeben


Autor: Helge (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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);
}

Autor: Helge (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: CCC (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmm..
probiers mal mit printf("%02x", i)

so wärs im standard definiert

Autor: Helge (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.