char Daten, aber wie?



  • Hallo und Schönes neues Jahr!
    Muss eine umwandlung von Dezimal in Hex Zahl vornehmen. Dies soll mit char dateien gemacht werden. wie weise ich die char datei den Ziffern A,B,C,D zu 10, 11, 12, 13, 14, 15 zu. bin anfänger und weiss nicht weiter.
    So weit hab ich es mal programmiert, weis aber nicht ob das so Stimmt.

    #include <iostream.h>
    //#include <vcl.h>
    
    void main (void)
    {
        const iFaktor=16;
        int iDez, iZahl1,iZahl2, iZahl3;
        char chRest1, chRest2, chRest3;
    
        cout << "Bitte geben Sie ihr Dezimalzahl ein" << endl;
        cin >> iDez;
    
        if (iDez <=4096)
        {
        chRest1=iDez%iFaktor ;     //Hexziffer 3 berechnen
        iZahl1=iDez/iFaktor ;             //Ganzahlige division
        }
    
        if (iZahl1>0)
        {
        chRest2=iZahl1%iFaktor ;     //Hexziffer 2 berechnen
        iZahl2=iZahl1/iFaktor ;             //Ganzahlige division
    
        }
    
        if (iZahl2>0 )
        {
        chRest3=iZahl2%iFaktor ;     //Hexziffer 1 berechnen
        iZahl3=iZahl2/iFaktor ;             //Ganzahlige division
        }
        if (iZahl3==0)
        {
        cout<< chRest1<<chRest2<<chRest3;
        }
        else
    
        {
           cout  <<"Sie haben einen Fehler bei der Eingabe gemacht " << endl;
        }
    
        cout << endl << "Programmende - ENTER-Taste tippn!";
        cin.get();  // Tastaturpuffer leeren
        cin.get();
    }
    


  • Bitte benutz Code-Tags, wenn du den Code postest, so ist das ziemlich unleserlich!

    Ob das "soweit stimmt" oder nicht, merkst du doch, wenn du's einfach ausprogrammierst. Was ich nicht ganz versteh ist, was der Thread-Titel mit dem eigentlichen Inhalt zu tun hat. Warum "warum char Daten?"


  • Administrator

    1. Keine Doppelposts bitte:
    http://www.c-plusplus.net/forum/viewtopic-var-t-is-230404.html

    2. Benutze CPP-Tags.

    3. Probier es aus, dann weisst du es.

    4. Wenn es Probleme gibt, frag konkret nach.

    5. Wähle sinnvolle Threadtitel.

    Grüssli



  • ok sorry



  • Man kann im Übrigen auch seine Beiträge editieren... 🙄

    Zudem sind sowohl void main() als auch <iostream.h> sehr hässlich und nicht C++! Die richtigen Varianten wären int main() und <iostream> .



  • Dies ist nun eine andere Lösung. nun muss ich nur noch die Strin daten in char umwandeln. Wie mach ich das? Hab es versucht aber es funktioniert nicht.

    #include <iostream.h>
    #include <vcl.h>
    
    void main (void)
    {
        int iDezZahl, iErgebniss, iZahl, iHex;
        String sHexZahl, sHex;
    
        cout << "HexZahl Wandler" << endl << endl;
        cout << "Bitte geben Sie eine Dezimalzahl ein (maximal 4095): ";
        cin >> iDezZahl;
        cin.get();
        iZahl = iDezZahl;
    
        if (iDezZahl <= 4095)
        {
           while (iZahl > 0)
           {
                 iErgebniss = iZahl / 16;
    
                 iHex = iZahl%16;
    
                 iZahl = iErgebniss;
    
                 if (iHex > 9)
                 {
                    if (iHex == 10)
                    {
                       sHex = 'A';
                    }
                    else
                    {
                        if (iHex == 11)
                        {
                           sHex = 'B';
                        }
                        else
                        {
                            if (iHex == 12)
                            {
                               sHex = 'C';
                            }
                            else
                            {
                                if (iHex == 13)
                                {
                                   sHex = 'D';
                                }
                                else
                                {
                                    if (iHex == 14)
                                    {
                                       sHex = 'E';
                                    }
                                    else
                                    {
                                        if (iHex == 15)
                                        {
                                           sHex = 'F';
                                        }
                                    }
                                }
                            }
                        }
                    }
    
                 }
                 else
                 {
                     sHex = iHex;
                 }
                 sHexZahl =  sHex + sHexZahl;
    
           }
           cout << endl << "Der Hexwert von " << iDezZahl << " ist " << sHexZahl << "." << endl;
        }
        else
        {
           cout << endl << "Sie sollten doch unter 4095 bleiben." << endl;
        }
    
        cout << endl << "Programmende - ENTER-Taste tippen!";
    //    cin.get();  // Tastaturpuffer leeren
        cin.get();
    }
    


  • Darfst du denn die Standardfunktionen von C++ verwenden, um direkt Integer einzulesen?
    Wenn dem so ist, weisst du, wie man auf dem Papier sehr einfach Binär- in Hexadezimalzahlen umwandelt?
    Wenn nicht, findet man meistens dazu etwas auf Wikipedia:
    http://de.wikipedia.org/wiki/Dualsystem.
    Nun ist natuierlich auch die Frage, wie weit du C++ kannst. Mit der einfachen Methode und ein paar Bitmanipulationen laesst sich solch eine Umwandlung gut umsetzen.
    Ich habe eine entsprechende Loesung vorbereitet, aber da sich dein Text nach Hausaufgaben anhoert, darfst du erstmal selber knobeln 😉


Anmelden zum Antworten