www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Suche Umwandlung int --> hex


Autor: Stopfer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Ich programmiere mit CodeVisionAVR. leider beinhaltet die Software nur
die Umwandelfunktion int to ascii. Gibt es im Forum jemand der eine
Funktion geschriebn hat, wo man die int Zahl zu einer hex Zahl wandeln
kann?

Autor: MooseC (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
itoa ist aber schon ganz richtig. Nimm Radix 16 und dann passt das
schon

char *   itoa (int __val, char *__s, int __radix)

Autor: Stopfer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi!

Kannst du mir ein Beispiel geben?

Autor: Mike (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
int dings = 15;
char array [5];

itoa (dings,array,16);

Autor: Stopfer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Mike!

Mit CodeVsionAVR funktioniert dies nicht.
------------------------
int dings = 15;
char array [5];

itoa (dings,array,16);
------------------------

Autor: Rufus T. Firefly (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"Mit CodeVsionAVR funktioniert dies nicht."

Die obligatorische Frage:

Was heisst "funktioniert nicht"? Wird nichts in das Array
geschrieben, weigert sich der Compiler, den Code zu übersetzen,
explodiert der Controller?

Autor: Tobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
evtl will er einen expliziten cast haben
itoa (dings,(char*)array,16);

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

wenn array als "char array [5];" deklariert ist dann ist "array"
ein "char *"

Matthias

Autor: Tobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich weiss, aber vc++ meckert es trotzdem an und gcc falss ich mich recht
erinnere auch

Autor: peter dannegger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"...explodiert der Controller?"

Das wirds wohl sein.
Meine Glaskugel ist ja auch grad zur Reparatur.


Peter

Autor: Ingo B. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

in CodeVision ist itoa nur:
void itoa(int n, char *str)

Also nichts mit radix.

Wenn Du keine eigene Umwandlungsfunktion schreiben willst, geht es
höchstens mit sprintf...

Gruss,
Ingo.

Autor: Tobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
char *res; (in dem fall mindestens 2 zeichen platz benötigt)
char number;

static char ch_hex[] =
{'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};

res[1] = ch_hex[ number & 0x0F ];
res[0] = ch_hex[ (number >> 4) &0x0F   ] ;

Autor: Stopfer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Tobi!

jetzt bin völlig verwirrt.
Wie kann ich deine Code in ein beispiel umsetzen?

Autor: Tobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
mach res als
char res[3];

und am ende noch ein
res[2] = 0;

funktionier mit zahlen bis 255, in res stehts dann drin

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.