Dezimalzahlen in Binärzahlen umwandeln



  • Binärzahlen haben doch ne länge von 8 Zeichen.

    Wegen 2^0 2^1 usw. Hat man alles mal gelernt.
    11010101 <--- 213 hehe

    Ich sagte doch das ich es algorithmisch nicht so drauf habe weil ich mich damit genau seit heute morgen um 9:13 befasse...



  • es kommt immer darauf an wieviel bit die binärzahl hat! Ich frage mich gerade was du so gelernt hast 😉



  • Diron schrieb:

    Binärzahlen haben doch ne länge von 8 Zeichen.

    und was haben dezimalzahlen für eine länge? 😉

    Hat man alles mal gelernt.

    jaja, immer das risiko, was falsches zu lernen...



  • Kann man das nicht einfacher aufs Blatt bringen! Is mir echt viel zu stressig 2000 Zeilen Code wegen so ner pissigen Aufgabe zu schreiben 😮



  • was erwartest du denn! wenn du es nich selber probieren willst tuts mir leid!
    aber wie gesagt
    http://www.c-plusplus.net/forum/viewtopic-var-t-is-39490.html
    da is was



  • Wieso gibts dafür eigentlich keinen Manipulator wie für oct, hex usw.? Hab mal gehört es gibt nen Befehl wie setbase. Könnte man es damit auch schaffen?
    Das geht jedenfalls nicht: cout << setbase(2) << [Zahl] << endl;
    Wär ja auch zu geil... 😃



  • Jetzt übertreib mal nicht:
    So gehts z.B. auch kürzer, dafür aber nicht so komfortabel 😉 (Da beschränkt auf den Wertbereich von unsigned int)

    unsigned int decToBin(int x)
    {
         unsigned int y = 0;
         while(x > 0)
         {
               y = y * 10 + (x % 2);
               x /= 2;
         }
         return y;
    }
    

    Caipi



  • Ich schau mir das jetzt mal in Ruhe an. Vielen Dank Caipi und PROST! 🙂
    Bald is wieder sommer und da vernichte ich dich literweise hehe



  • FÜR CAIPI

    :-)#include <iostream> // für io
    #include <sstream> // für's umwandeln
    #include <algorithm> // für's umdrehen
    
    using std::string;
    using std::ostringstream;
    
    string binary( unsigned int zahl )
    {
    ostringstream os; // hier drin binärziffern sammeln
    
    for ( int i = zahl; i != 0; )
    {
    // es wird immer das rechte bit untersucht
    // wenn zahl ungerade (Bit 0 == 1),
    // 1 an den ostringstream hängen, sonst 0
    if (i & 1) 
    os << "1";
    else 
    os << "0";
    
    i >>= 1; // nach rechts shiften, um nächste 
    // binärziffer zu untersuchen 
    // (entspricht teilen durch zwei)
    }
    
    string dualzahl = os.str(); // in string kopieren
    
    std::reverse( dualzahl.begin(), dualzahl.end() ); // string umdrehen
    
    return dualzahl;
    }
    
    void wait()
    {
    // warten
    char c;
    std::cin >> c;
    }
    
    int main(void)
    {
    std::cout << "Ergebnis: " << binary( 439828 ); 
    
    wait();
    return 0;
    };
    


  • Diron schrieb:

    FÜR CAIPI...

    da hat wohl jemand einen neuen freund gefunden 🤡


Anmelden zum Antworten