Aus 2 chars ein integer Wert machen
-
Hey C++ler,
kann man aus zwei chars einen integerwert machen?
Das soll dann so aussehen:
char 1 = '1'; char 2 = '2'; //Die Eingabe war aber die Zahl 12 //jetzt sollen sie als integer zusammen gesetzt werden int z = 1&2// ?????Wie lautet die richtige Operation dafür? Wichtig:Sie sollen nicht addiert werden (so würden sie den Wert 3 haben) sie sollen zusammengesetzt werden!
-
char str[] = { ch1, ch2, '\0' }; int z = atoi( str );
-
Kannst du den Code vielleicht bitte etwas erläutern?
-
int z = 10 * (c1 - '0') + c2 - '0';
-
Tut mir leid, aber ich verstehe nicht ganz wie das gemeint ist...
Bitte kurz erläutern...
-
erklärung zu atoi:
-
314159265358979 schrieb:
int z = 10 * (c1 - '0') + c2 - '0';Mr. Pi hatte doch eine tolle Lösung gepostet:
- Das Zeichen '0' hat den ASCII Wert 30. Das Zeiche '1' hat den ASCII Wert 31. ---> 31-30=1 und du landest bei deiner gewollten Zahl.
- Jetzt musst du nur noch die Stellenwertigkeit berücksichtigen. Bei 2 Stellen hast du eben 10^1 und 10^0. int z = 10^1*(c1-'0') + 10^0(c2 - '0'). Bei 3 Stellen musste du eben die 10^2 noch dazu nehmen, etc.
Dürfte nun klar sein, oder?
-
'0' == 0x30 == 48