www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik String nach ASCII - wie?


Autor: C_für_Dummies (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ein Hilferuf an alle C-Experten,

Eine Stringvariable, mit einem Wertebereich
von 0 bis +/-4.000.000.000 muss in eine ASCII-Variable abgelegt
werden.

Der Compiler ist CodeVisionAVR, MCU ist mega128.

Gibt es da einen einfachen Weg?


Gruß   Norbert mit C_für_Dummies

Autor: Christof Krüger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Eine Stringvariable, mit einem Wertebereich
>von 0 bis +/-4.000.000.000
Das klingt eher nach einer Integer-Variable (unsigned, 32 bit)

benutze einfach mal die forensuche, dazu gibt es mind. 1243213 Threads

Autor: C_für_Dummies (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja ja du hast Recht, es muss float nach ASCII heissen.


Norbert

Autor: OldBug (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Öhm?
Ne... Sicher nicht float!

uint32_t hat einen Wertebereich von 0 bis 4.294.967.296.
Wenn Du den negativen Bereich nutzen willst, dann brauchst Du doppelt
so viele Bits ;)

Autor: OldBug (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Quatsch!
EIN Bit mehr!

Autor: Karl Katt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin!

vielleicht ein kleiner denkansatz:

char* itoa(int eingabe)
{
  char ausgabe[20];
  int a=0,i=0;

  if(eingabe<0)
  {
    ausgabe[0]='-';
    a=1;
    eingabe*=(-1);
  }

  //
  i=10000000;
  while(i>eingabe)
  {
    i/=10;
  }
  while(i>=1)
  {
    ausgabe[a]=(eingabe/i)+48;
    eingabe-=((ausgabe[a]-48)*i);
    a++;
    i/=10;
  }

  ausgabe[a]='\0';

  return ausgabe;

}

bitte keine kritik, der algorithmus ist eigentlich müll, ich weiß

have fun,
karl

Autor: emil (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
codevision hat doch eine itoa() (sowie auch ltoa(), ftoa() usw.)
eingebaut in stdlib.h

Autor: C_für_Dummies (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich bin sooo blöd. Danke für Eure Hilfe!



Norbert

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.