mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ASCII in Integer umwandeln


Autor: Max (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin!!!

Ich will aus der UART mehere ASCII-Zeichen einlesen und um nun damit 
zurechnen muss das ganze in ein verwertbares Format umgewandelt werden.

Also '1'2'3' (ASCII) <---> 123 (double)

kann mir jemad da einen Lösungsansatz geben???

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

Bewertung
0 lesenswert
nicht lesenswert
Erstens ist double zumindest in C kein Integer-Format, sondern ein 
Gleitkommaformat. Und mal davon ausgehend, dass das ganze in C sein 
soll, gibt es in der stdlib.h eine Reihe von Funktionen, die solche 
Umwandlungen machen können, vorausgesetzt natürlich, die ASCII-Zeichen 
liegen in Form eines nullterminierten Strings vor.

Allerdings sollte man bei solchen Fragen immer angeben, mit welcher 
Programmiersprache man überhaupt arbeitet, vorausgesetzt, man möchte 
wirklich sinnvolle Antworten erhalten!

Autor: Flo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Also '1'2'3' (ASCII) <---> 123 (double)

100*('1'-'0') + 10*('2'-'0') + 1*('3'-'0') = 123

Autor: Thilo M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Geht mit 'atod', umgekehrt mit 'dtoa' (wenn ich mich recht erinnere).
Steht in der libc vom WINAVR.

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

Bewertung
0 lesenswert
nicht lesenswert
Thilo M. wrote:
> Geht mit 'atod', umgekehrt mit 'dtoa' (wenn ich mich recht erinnere).
> Steht in der libc vom WINAVR.
Wenn Du schon meinst, es noch schreiben zu müssen, obwohl der OP 
offensichtlich keinerlei Interesse mehr an der Sache hat, dann schau 
wenigstens selber vorher in der Doku nach! Dass es dafür 
Bibliotheksfunktionen gibt, hatte ich oben schon erwähnt, und sogar die 
Headerdatei genannt. Wenn Du da hinein geschaut hättest, dann wüsstest 
Du, dass die Funktion strtod heißt...

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

Bewertung
0 lesenswert
nicht lesenswert
Gero A. wrote:
> Wer hat dir denn ans Bein gepinkelt?
>
> Wenn du schon meinst, oben erwähnt haben zu müssen, dass es dafür
> Bibliotheksfunktionen gibt, dann schau gefälligst selber vorher in der
> Doku nach, welche Funktionen das sind.
Warum sollte ich das tun? Der OP kann (wenn er schon nicht in der Lage 
ist, das von ihm verwendete System/Compiler anzugeben) auch selber 
nachsehen, welche Funktionen das konkret sind. Da muss der Hinweis auf 
die betreffende Headerdatei genügen.

> Lebst du davon, hier Beiträge zu beantworten und hast den alleinigen
> Anspruch auf die richtige Antwort?
Nö. Und atod gibt es in der AVR-libc schlicht und ergreifend nicht. 
Wenn dann wäre es atof.

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

Bewertung
0 lesenswert
nicht lesenswert
Gero A. wrote:
> Sind wir hier vor Gericht?
> "Die Behauptung des Klägers ist definitiv unwahr. Sollte sie doch wahr
> sein, dann habe ich immer noch recht, weil..."
Wer ist denn der Kläger? Bist Du Thilos Anwalt? Oder was hat Dich 
überhaupt dazu bewogen, hier "einzuschreiten"?

Demzufolge auch die Frage, wer sich hier lächerlich macht. Wenn Du was 
Fachliches zum Beitrag zu sagen hast, dann tu das. Ansonsten gibt es zu 
viele, die nur posten, weil sie unbedingt ihren Senf dazugeben müssen, 
auch wenn es falsch ist. Ich habe Thilos Irrtum korrigiert und ihn 
darauf hingewiesen, dass er vielleicht besser nicht aus der Erinnerung 
geschrieben hätte (das bringt dem Fragesteller nämlich außer 
zusätzlicher Verwirrung nichts, wenn es nicht stimmt und er sich nach 
der nicht-existenten Funktion atod nen Wolf sucht). So, und getz is 
gut.

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.