int to char



  • Hi,

    wie geht das OHNE irgendwelche funktionen (like itoa, sprintf und co.) zu benutzen? sondern so richtig hardcore massig.

    wäre hilfreich mal zu wissen, wie sowas geht.

    beispiel:

    // aus 
    char Zeichen = "5";
    // soll
    int Zahl = 5;
    // werden.
    

    weis irgendeiner wie das geht? Irgendwie muss es ja gehen.

    [ Dieser Beitrag wurde am 30.05.2003 um 21:01 Uhr von Ikari editiert. ]



  • Ja, über den ASCII-Code kannst Du das berechnen....

    Zahl "1" = ASCII 49
    Zahl "2" = ASCII 50

    Also:

    char Zeichen = '5';
    int Zahl = Zeichen - 48; // ergibt ASCII 53 - 48 = 5
    


  • **```cpp
    char Zeichen = "5";

    Meinst du nicht, dass da etwas falsch ist?!

    int Zahl = Zeichen - 48;
    

    Erklärung: Zeichen hat den ASCII-Code 48 + dem Wert des Zeichens, also:

    48   0
    49   1
    50   2
    51   3
    ...
    57   9
    

    Das Zeichen wird ja nicht mit '5' oder so, sondern mit seinem Ganzzahl-ASCII-Code gespeichert. Anhand dieser Tabelle kannst du durch einfache Subtraktion nun die Ziffer ermitteln, die in dem char gespeichert ist.

    [ Dieser Beitrag wurde am 30.05.2003 um 21:19 Uhr von RTC editiert. ]



  • Mist, zu spät 😉



  • Hallo ...

    ich würde das so machen:

    char zeichen = '5';
    int zahl = zeichen - '0';
    

    Es ist besser verständlich was hier passiert und ASCII sollte nicht für jedes System vorausgesetzt werden.

    [ Dieser Beitrag wurde am 30.05.2003 um 22:23 Uhr von mady editiert. ]



  • Original erstellt von mady:
    ... ASCII sollte nicht für jedes System vorausgesetzt werden.

    Wieso nicht? Es wird zwar nicht vorausgesetzt, aber mal ganz ehrlich: welcher heutige Computer unterstützt schon nicht den ASCII-Standard?

    😕



  • Original erstellt von RTC:
    ... Es wird zwar nicht vorausgesetzt, aber mal ganz ehrlich: welcher heutige Computer unterstützt schon nicht den ASCII-Standard?

    z.B. musste ich mal eine ganze Zeit lang mit einer IBM AS/400 arbeiten; Dort wird zwar hauptsächlich Cobol und RPG programmiert aber es gibt auch C und C++ Compiler für das System.



  • Ich würde es auch mit '0' statt 48 machen. Und das aus nem ganz simplen Grund: '0' weiss ich sofort, aber den ASCII-WErt von '0' müsste ich nachschlagen 🙂 Und derjenige, der den Quellcode liest verstehts auch schneller.


Anmelden zum Antworten