Forum: Compiler & IDEs ascii nach dezimal wandeln ohne printf mit einem Atmega


von Marco W. (kniffeldi)


Lesenswert?

Hallo

Ich möchte Ascii-Zeichen über Uart empfangen und nach dezimal wandeln.
Dabei sollen alle Zeichen aus dem Ascii-Zeichensatz gewandelt werden
können.
Also zB. $ => 36
         ? => 63
         Z => 90   usw. (0 - 255, also komplette Tabelle)

Printf möchte ich nicht verwenden, atoi wandelt nur Zahlen.
Weiß jemand ich es anstellen kann?

von Falk B. (falk)


Lesenswert?

????
Was gibt es denn da zu wandeln? Das SIND doch die ASCII Codes.
1
char a;
2
3
a = 'A';
4
a = 65;   // Ist identisch
5
6
a = '?';
7
a = 63;   // ist identisch

MFG
Falk

von Marco W. (kniffeldi)


Lesenswert?

Das mit den Stringkonstanten ist mir bekannt, aber wie mache ich aus
einer Variablen eine Stringkonstante?

MfG
Marco

von Falk B. (falk)


Lesenswert?

@  Marco Weinrich (kniffeldi)

>Das mit den Stringkonstanten ist mir bekannt,

Wirklich?

>aber wie mache ich aus einer Variablen eine Stringkonstante?

Gar nicht, den Konstanten sind nun mal KONSTANT.

von Klugscheisser (Gast)


Lesenswert?

Das ist ganz einfach.
Du hast ja schon eine kleine ASCII-Tabelle oben angefangen. Aber was 
heisst denn das nun? (Denn da sehe ich Dein Problem).

>Z => 90

Das kann man doch so interpretieren : Die Zahl 90 ist dem Zeichen 'Z' 
zugeordnet. Eine ASCII-Tabelle ist also eine Vorschrift wie eine Zahl 
zu interpretieren ist. D.h. Du musst hier nichts umwandeln . Du 
musst hier nur was anders interpretieren. OK?

printf ist z.b. so ein hübsches Mittel um das zu erledigen.

short int x = 90;

printf ("%d", x) ergibt den String "90".
printf ("%x", x) ergibt den Strinf "5A".
printf ("%c", x) ergibt das Zeichen 'Z'.

uswusf.

von Klugscheisser (Gast)


Lesenswert?

Ah. Ich sehe schon, da kommt als nächstes die Antwort:

"Aber printf möchte ich nicht verwenden!".

Sicherlich. Das sollte ja auch nur das Prinzip zeigen.

D.h. Du könntest vielleicht darauf kommen, das Deine Frage sich auf die 
Umwandlung von Zahlen in ASCII-Zeichen insofern zu tun hat, das die 
Darstellung der Zahl erzeugt werden soll. Keine Interpretation.

D.h. Du musst von der Zahl 0x5A auf die ASCII-Zeichen '5' und 'A' 
kommen.
Das ist Dir aber wahrscheinlich schon klar, oder?

von Stefan Salewski (Gast)


Lesenswert?

>Du musst hier nur was anders interpretieren.

Evtl. geht es ihm um die Wandlung der internen Darstellung im uC in die 
für Menschen lesbare Form (Ziffern usw.) bzw. umgekehrt. Es gibt hier im 
Forum fast keine Fragen mehr, die man ohne Glaskugel verstehen kann.
Und bei den Antworten ist es auch nicht viel besser, wie man an dieser 
sieht.

von Klugscheisser (Gast)


Lesenswert?

Was ist denn das für ein Satz?
>D.h. Du könntest vielleicht darauf kommen, das Deine Frage sich auf die
>Umwandlung von Zahlen in ASCII-Zeichen insofern zu tun hat, das die
>Darstellung der Zahl erzeugt werden soll. Keine Interpretation.

Das sollte natürlich heissen:

D.h. Du könntest vielleicht darauf kommen, das Deine Frage sich auf die
Umwandlung von Zahlen in ASCII-Zeichen bezieht und mit den ASCII-Zeichen 
insofern zu tun hat, das die Darstellung der Zahl erzeugt werden soll. 
Keine Interpretation.

von Klugscheisser (Gast)


Lesenswert?

@ Stefan Salewski

>Und bei den Antworten ist es auch nicht viel besser, wie man an dieser sieht.

Das geschieht durchaus mit einer gewissen Absicht. Denn mir liegt eher 
daran die Fragenden zu selbstständigen Erfolgen kommen zu lassen als 
ihnen alles vorzukauen.

von Stefan Salewski (Gast)


Lesenswert?

>Das geschieht durchaus mit einer gewissen Absicht. Denn mir liegt eher
>daran die Fragenden zu selbstständigen Erfolgen kommen zu lassen als
>ihnen alles vorzukauen.

Nein, Dich hatte ich wirklich nicht gemeint.

Das "wie man an dieser sieht." war (ironisch) auf meine eigene Antwort 
bezogen.

Aber es gibt hier schon viele unverständliche und oft auch falsche 
Antworten,

von Marco W. (kniffeldi)


Lesenswert?

Danke für Eure Antworten.
Ich hab's gerafft brauch nicht's zu wandeln, sondern es kommt drauf an 
wie ich das Ganze "darstelle"

Gruß Marco

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.