Dezimalzahl in Dualzahlen etc. umrechnen



  • Hallo.

    Ich brauche ein Programm, das eine Dezimalzahl in ein anderes Zahlensystem umrechnet.

    Im Moment habe ich ein Programm, das nur in Dualzahlen umrechnet.
    Als Basis (Zahlensystem) soll man eine Zahl von 2 bis 9 eingeben können.

    Hier der Quellcode (nur Dezimal in Dual):

    #include <iostream.h>
    #include <stdlib.h>

    int main()
    {

    int iprodukt;
    int izahl;
    int ibasis;
    int irest;

    //Einlesen

    cout << "\nBitte Zahl eingeben: ";
    cin >> izahl;
    cout << "\nBitte Basis eingeben (Zahlensystem): ";
    cin >> ibasis;

    //Schleife

    for (iprodukt=1; iprodukt<=izahl; iprodukt=iprodukt*ibasis)
    {

    }
    iprodukt=iprodukt/ibasis;
    irest=izahl;

    //Zweite Schleife

    for (;iprodukt!=0; iprodukt=iprodukt/ibasis)
    {
    if (irest>=iprodukt)
    {
    cout << "1";
    irest=irest-iprodukt;
    }
    else
    {
    cout << "0";
    }
    }

    cout << "\n\n";

    system("pause");
    return 0;
    }

    Man muss irgendwas bei der zweiten Schleife und bei der Anweisung ändern. Was man ändern muss, weiß ich leider nicht.
    Kann mir jemand helfen?

    Wäre sehr nett.

    Schon mal danke.



  • Hoi,
    hier kannst du ins Zahlensystem von 2-36 umrechnen...

    bei Basen > 10, werden die Buchstaben zur weiteren darstellung genommen...
    (wie beim z.B.hexadezimalsystem von a-f)

    #include <stdio.h>
    #include <stdlib.h>
    
    void umrechnen(int ZahlenSystem, long int Zahl);
    
    int main()
    {
       int ZahlenSystem = 0;
       long int Zahl = 0;
    
       printf("\nIn welches Zahlensystem ( <36 ) umrechnen?? ");
       scanf("%i", &ZahlenSystem);
       printf("\nWelche Zahl soll umgerechnet werden?? ");
       scanf("%i", &Zahl);
    
       if ((ZahlenSystem < 36) && (ZahlenSystem > 1))
          umrechnen(ZahlenSystem, Zahl);
       else printf("Falsche Eingabe  ( 2-35)");
       system("pause > nul");
       return 0;
    }
    
    //Rekursive Funktion
    void umrechnen(int ZahlenSystem, long int Zahl)
    {
       if (Zahl > 0)
       {
          short Zahl2 = Zahl % ZahlenSystem;
          umrechnen(ZahlenSystem, Zahl/ZahlenSystem);
          if (Zahl2 < 10) printf("%d", Zahl2);
          else printf("%C", (55+Zahl2));
       }
    }
    

    cu...



  • aso...das sieht mir bei dir doch scho eher fuer ein problem aus dem c++
    forum aus ... Oo 😃



  • Jo, vielen Dank.
    Das Programm läuft super. 🙂


Anmelden zum Antworten