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


von C_für_Dummies (Gast)


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

von Christof Krüger (Gast)


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

von C_für_Dummies (Gast)


Lesenswert?

Ja ja du hast Recht, es muss float nach ASCII heissen.


Norbert

von OldBug (Gast)


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 ;)

von OldBug (Gast)


Lesenswert?

Quatsch!
EIN Bit mehr!

von Karl Katt (Gast)


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

von emil (Gast)


Lesenswert?

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

von C_für_Dummies (Gast)


Lesenswert?

Ich bin sooo blöd. Danke für Eure Hilfe!



Norbert

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.