Dualzahlen in dezimahl umwandeln



  • Kann mir einer einen tipp geben was ich anders machen muss.

    #include <iostream>
    
    using namespace std;
    
    int main()
    {
    int ergebnis,zahl,s1,s2,s3,s4,s5,s6,s7,s8;//vereibarung der variablen stelle,zahl
    int z1,z2,z3,z4,z5,z6,z7,z8;
    int e1=1,e2=2,e3=4,e4=8,e5=16,e6=32,e7=64,e8=128;// zuweisung der stellenwerte an e
    
        cout<< "Bitte geben Sie eine Dualzahl ein.(bis zu achtsellen moeglich)";
        cin >>zahl;
    while(zahl>11111111)
    {
        cout<< "zahl";
        cin>>zahl;
    }
       s1=zahl%10;   //zahl durch modulo rest ist = s1
        z1=zahl/10;  //zahl wird um eine position verkleinert teilen durch 10
    
       s2=z1%10;    //zahl durch modulo rest ist =s2
        z2=z1/10;   //zahl wird um eine position verkleinert teilen durch 10
    
       s3=z2%10;
        z3=z2/10;
    
       s4=z3%10;
        z4=z3/10;
    
       s5=z4%10;
        z5=z4/10;
    
       s6=z5%10;
        z6=z5/10;
    
       s7=z6%10;
        z7=z6/10;
    
       s8=z7%10;
        z8=z7/10;
    
    if(s1==1)  // wenn s1 ist 1 dann ist s1 =e1
        e1=s1;
    if(s2==1)
        e2=s2;
    if(s3==1)
        e3=s3;
    if(s4==1)
        e4=s4;
    if(s5==1)
        e5=s5;
    if(s6==1)
        e6=s6;
    if(s7==1)
        e7=s7;
    if(s8==1)
        e8=s8;
      ergebnis=e1+e2+e3+e4+e5+e6+e7+e8; //addition
    
      cout<< "Die Dezimahlzahl ist " <<ergebnis<<endl;
    
    return 0;
    }
    


  • Neuling77 schrieb:

    Kann mir einer einen tipp geben was ich anders machen muss.

    Nichts, es sei denn, du hast ein Problem.



  • ja ich habe ein problem das programm gibt mir nicht die richtige dezimahlzahl aus.
    irgendwie habe ich mich verrant.



  • s1 bis s8 sollen doch am Ende entweder 0 oder 1 sein?
    Dann müsste es eher heißen:

    if(s1 == 0)
      e1 = 0;
    //usw.
    ...
    


  • Dankeschön 🙂 🙂 🙂 🙂


Anmelden zum Antworten