Forum: Compiler & IDEs Int Problem in gcc


von Christian Georgi (Gast)


Lesenswert?

Hallo,

Ich bin kein Profi, vielleicht fällt euch spontan was ein um mir zu 
helfen.
habe folgendees Problem:
Ich will werte auf 7 Segment Anzeigen ausgeben.

mit
int c='0'; funktioniert das und mit
int c=0; nicht
 kann mir einer sagen warum?
Ich bekomme die Werte von einer anderen Variable welche ohne '' 
definiert ist
Gruß
Christian

von hein (Gast)


Lesenswert?

Hi,

es liegt wahrscheinlich an den verschiedenen Inhalten der Variable.
Siehe: http://de.wikipedia.org/wiki/Ascii#Zusammensetzung

c='0'  ->  c=0x30
c=0    ->  c=0x00

von Daniel S. (enton)


Lesenswert?

hein hat recht. Die Null im ASKII Zeichensatz entspricht der Zahl 48 
bzw. 0x30. Das ist aber kein Problem, da die Zahlen im ASKII zeichensatz 
in der gleichen Reihenfolge definiert sind d.h. 
'0'=48,'1'=49,'2'=50......
Das heist, wenn du eine Zahl in einer Variable hast, musst du nur 48 
dazu addieren. Wenn du in deiner Variable c z.B. 2 stehen hast und das 
ausgeben willst, musst du einfach nur c=c+48; machen und schon kannst du 
sie ausgeben.
(Nun enstpricht c nichtmehr 2 sondern '2').

von Μαtthias W. (matthias) Benutzerseite


Lesenswert?

Hi

lesbarer wäre
1
c += '0';
2
//oder
3
c = c + '0';

Matthias

von Christian Georgi (Gast)


Lesenswert?

Danke,
hat mir sehr geholfen.
Ich weiß jetzt was ich in meinem Programm ändern werde :-)
Gruß
Christian

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.