Konvertierungsprogramm für dezimal, hexadezimal und binär!



  • hallo leute,
    ich bin zwar noch ein ziemlicher noob auf dem gebiet, aber ein wenig habe ich schon verstanden...
    es soll erstmal auf konsolenbasis aufbauen, und wird in italienisch...(wir lernen leider kein c++ in der schule, und deshalb will ich das alleine machen).
    ich habe mir schon das C++ buch von dirk louis besorgt, und einigermaßen durchgearbeitet....

    mein jetziiger quellcode geht bis zum menü, aber ich weiß einfach nicht wie ich jetzt die mathematischen funktionen einbauen soll... 😞

    sieht so aus:

    // convertitore di numeri esadecimali, binari, decimali. 
    
    #include <iostream>
    #include <cmath>
    #include <cstdio>
    using namespace std;
    
    int main()
    {
    	int scelta;
    	cout << endl;
    	cout << "Menu:\n";
    	cout << "<1> Da binario in decimale\n";
    	cout << "<2> Da decimale in binario\n";
    	cout << "<3> Da binario in esadecimale\n";
    	cout << "<4> Da esadecimale in binario\n";
    	cout << "<5> Da esadecimale in decimale\n";
    	cout << "<6> Da decimale in esadecimale\n";
    	cout << "<0> Chiudi il programma\n";
    	cout << endl;
    	cout << "Scegliere la funzione: \n";
    
    	cin >> scelta;
    
    	switch(scelta)
    	{
    	case 0: cout << endl;
    			cout << "Chiudi il programma\n";
    			break;
    	case 1: cout << endl;
    			cout << "Da binario in decimale\n";
    			break;
    
    	case 2: cout << endl;
    			cout << "Da decimale in binario\n";
    			break;
    	case 3: cout << endl;
    			cout << "Da binario in esadecimale\n";
    			break;
    	case 4: cout << endl;
    			cout << "Da esadecimale in binario\n";
    			break;
    	case 5: cout << endl;
    			cout << "Da esadecimale in decimale\n";
    			break;
    	case 6: cout << endl;
    			cout << "Da decimale in esadecimale\n";
    			break;
    	default: cout << endl;
    		cout << "Input non valido\n";
    		break;
    	}
    
    	system("pause");
    }
    

    ich hoffe ihr könnt mir helfen...

    mfg
    myth



  • Wo ist das Problem bzw. die Frage ? Wo kommst Du nicht weiter ?



  • ich weiss nicht wie man nach dem switch auf eine mathematische funktion (mit möglichst langer nummer) verweißt, und diese selbst aufbaut....
    sry wenn ich sowas blödes frage, aber ich bin auf dem gebiet einfach neu...und mit grafischer oberfläche ist das dann noch mal was ganz anderes, oder?

    mfg
    myth



  • up....weiss niemand mir helfen?



  • Abgesehen davon das es im falschen Forum ist, solltest Du vllt. die Fragestellung überdenken.



  • hoppla, da habe ich doch glatt das konsolen-unterforum übersehen....könnte das vielleicht ein mod oder admin verschieben? sry....
    fragenstellung: ok, ich würde mich auch schon freuen, wenn mir jemand sagen könnte, wo ich nachlesen kann, wie sowas geht, oder wo die erklärung der mathematischen funktionen (mi cmath) aufgelistet sind...

    mfg
    myth



  • Ich fände es im C++ Forum besser aufgehoben.

    Ansonsten: http://www.google.de/search?sourceid=navclient&hl=de&ie=UTF-8&rls=GGLJ,GGLJ:2006-39,GGLJ:de&q=cmath

    Der erste Treffer liefert eine Auflistung mit Erklärung.

    IMHO wird immer noch nicht klar an welcher Stelle Du hängst.



  • ich weiss einfach nicht wie genau ich die berechnung für die umwandlung im menü eingeben, und bearbeiten muss....



  • Abgesehen davon das Du mit der ständig gleichen Erklärung einfach nix neues in die Erklärung bringst:

    10 = 0xA = 00001010 , da gibt nix umzurechnen.

    Ich könnte aber mal raten: Du meinst vllt. die leserliche darstellung ?
    Dann schau Dir mal cout mit ios::hex an. Ebenso liefert Dir ein wenig schmökern und suchen nach Deinem (vermutlichen) Wunsch im C++ Forum sicherlich noch ein paar Lösungen.

    Und Funktionen wirst in Deinem Buch sicherlich schon gehabt haben ?



  • Und Funktionen wirst in Deinem Buch sicherlich schon gehabt haben ?

    die funktion cout schon, aber nicht mit ios::hex...aber das werde ich mir jetzt rausgooglen, und dann mal etwas einstudieren....

    bis hier hin schon mal vielen dank das du mir mit meinen blöden fragen hilfst...

    mfg
    myth



  • ich meinte die leserliche darstellung.....könnte mir bitte jemand sagen wie ich das in jeweils bin, hex und dec machen kann? und ist das buch von Prinz, Peter; Kirch-Prinz, Ulla

    C++ Lernen und professionell anwenden

    wirklich so gut? denn dann kaufe ich es mir...

    mfg
    myth



  • Dieser Thread wurde von Moderator/in Jochen Kalmbach aus dem Forum C++/CLI mit .NET in das Forum C++ verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • //Hexadezimal:
    cout<<hex<<value;
    //Dezimal:
    cout<<value;
    //Binär:
    cout<<bitset<numeric_limits<int>::digits>(value);
    


  • ich habe mir jetzt erstmal das Buch von Ulla Prinz bestellt....damit ich mir noch Wissen aneignen kann....denn so bekomme ich Das immer noch nicht hin...

    danke und mfG
    myth



  • myth schrieb:

    hallo leute,
    ich bin zwar noch ein ziemlicher noob auf dem gebiet, aber ein wenig habe ich schon verstanden...
    es soll erstmal auf konsolenbasis aufbauen, und wird in italienisch...(wir lernen leider kein c++ in der schule, und deshalb will ich das alleine machen).
    ich habe mir schon das C++ buch von dirk louis besorgt, und einigermaßen durchgearbeitet....

    mein jetziiger quellcode geht bis zum menü, aber ich weiß einfach nicht wie ich jetzt die mathematischen funktionen einbauen soll... 😞

    hmm schreib dir bei jedem case ne eigene funktion die die umrechnung übernimmt. das kannste dann auch ganz gut in einer extra includierten datei schreiben um das dann später ohne jeglichen änderungen in eine graphische oberfläche einbauen.
    Übergib der funktion die zahl und lasse dir als rückgabewert die umgerechnete zahl zurückliefern.

    hier mal ein code von binär zu dez:
    in Datenbit steht das binäre word und zwar in folgender form, B0 B1 B2 B3 ...

    int r = 1;
    int DatenWord = 0;
    int DatenBit[8];
    for(int x = 0; x < 8; x++)
    {
     DatenWord = DatenWord + (DatenBit[x] * r);
     r = r * 2;
    }
    

Log in to reply