mikrocontroller.net

Forum: Compiler & IDEs 16Bit Zahl zu String


Autor: T.M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Habe das Problem das ich eine uint16_t wert als Zahl in einen String 
wandeln möchte!

Habe wohl schon die sprintf() funktion gefunden allerdings funktioniert 
diese ja nur mit Integer Werten.

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sprintf funktioniert mit praktisch allen Werten (Typen) und ist 
dementsprechend umfangreich und langsam! In der stdlib.h gibt es einen 
ganzen Haufen spezialisierterer und dementsprechend kleiner und 
schneller Funktiönchen für solche Zwecke. Für einen uint16_t gäbe es 
z.B. utoa...

Autor: T.M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
krieg ich mit utoa nicht den jeweiligen ASCII code ? und nicht die Zahl 
welche ich will ?

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
T.M. wrote:
> krieg ich mit utoa nicht den jeweiligen ASCII code ? und nicht die Zahl
> welche ich will ?

Wie wärs, wenn du dir einfach mal im Web eine Dokumentation zu utoa 
suchst.

Ist mir sowieso unverständlich, wei man ohne Unterlagen eine 
Programmiersprache benutzen kann. Aber seis drum.

Autor: Tilo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Johannes:

Kannst du das mit der stdlib konkretisieren? Ich verwende newlib und bei 
mir gibt es die Funktion utoa nicht.

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
T.M. wrote:
> krieg ich mit utoa nicht den jeweiligen ASCII code ? und nicht die Zahl
> welche ich will ?
Hä? Oben wolltest Du doch die Zahl in einen String wandeln. Und ein 
String besteht im kontextuellen Sprachgebrauch nunmal aus ASCII-Zeichen. 
Was meinst Du denn, was sprintf ausspuckt?

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Tilo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hm, der ganze Artikel bezieht sich nur auf AVR? Habe ich überlesen, dass 
es hier um AVR speziell geht?

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tilo wrote:
> Hm, der ganze Artikel bezieht sich nur auf AVR? Habe ich überlesen, dass
> es hier um AVR speziell geht?

Nein. Der Artikel (zumindest der von mir verlinkte Abschnitt) bezieht 
sich nicht auf AVR im Speziellen, sondern auf die Programmiersprache C 
im Speziellen. Im Artikel sind 3 Methoden angegeben, wie man das 
Gewünschte erreichen kann. 2 davon funktionieren auf jedem noch so 
grindigen C-System (printf/sprintf bzw. eine selbstgemachte 
Ausgabefunktion), während die dritte nur auf ausgewählten C-Systemen 
funktioniert (itoa bzw. utoa), wobei praktisch alle C-Systeme eine 
derartige Funktion anbietet.

Ich kenn zwar die von dir erwähnte newlib nicht, aber ich würde fast 
darauf wetten, dass es eine entsprechende Funktion gibt (die u.U auch 
_utoa heißen könnte) und du nur nicht das richtige Header File hast.

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tilo wrote:
> Hm, der ganze Artikel bezieht sich nur auf AVR? Habe ich überlesen, dass
> es hier um AVR speziell geht?
Nein, aber Du hast die Forenregeln nicht beachtet und in Deinem OP 
nicht erwähnt, um was es wirklich geht!

Zitat:
Wichtige Regeln - erst lesen, dann posten!

    [...]
    * Im Betreff angeben um welchen Controllertyp es geht (AVR, PIC, ...)
    [...]

Autor: Tilo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich bin nicht T.M.

Mich hat das Thema nur interessiert, weil ich bei der Newlib auf dem 
Stand bin, dass man so eine Funktion selbst schreiben muss und nichts 
dabei ist.
Daher meine Frage.

Autor: T.M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
cool bleiben ^^

ist dank euch jetzt gelöst werde nächstes mal meiner ersten idee gleich 
nachgehen ;)

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.