Variablen zusammenfassen



  • Ich will mein Problem anhand eines Beispiels erklären. Es soll ein einzelnes Zeichen im Binär Code darstellen. Der Code:

    #include <iostream.h>
    #include <conio.h>
    
    void bina(char a);
    
    int main()
    {
        char Zeichen;
        cout << " Geben Sie ein Zeichen ein: ";
        cin >> Zeichen;
        bina(Zeichen);
        getch();
        return 0;
    }
    
    void bina(char a)
    {
        int b = (int) a;
        int e1, e2, e3, e4, e5, e6, e7, e8;
    
        e1 =       b                          /128;
        e2 =      (b%128)                     /64;
        e3 =     ((b%128)%64)                 /32;
        e4 =    (((b%128)%64)%32)             /16;
        e5 =   ((((b%128)%64)%32)%16)         /8;
        e6 =  (((((b%128)%64)%32)%16)%8)      /4;
        e7 = ((((((b%128)%64)%32)%16)%8)%4)   /2;
        e8 =(((((((b%128)%64)%32)%16)%8)%4)%2)/1;    
    
        cout << endl << endl;
        cout <<"Binaer-Code: "<< e1 << e2 << e3 << e4 << e5 << e6 << e7 << e8 
             << endl;
    }
    

    So, funktioniert ja eigentlich auch alles, nur will ich das Ergebniss nicht von der Funktion ausgeben lassen, sondern im Hauptprogramm, also ungefähr so:

    [cpp]
    int main()
    {
    char Zeichen;
    cout << " Geben Sie ein Zeichen ein: ";
    cin >> Zeichen;

    cout << "Binaer-Code: " << bina(Zeichen) << endl;
    getch();
    return 0;
    }[/cpp]
    ...

    also das e1 - e8 in einem String oder einem int als 8-stellige Zahl zusammengefasst sind. Geht das irgendwie? 😕



  • hmmm ... das sieht mir sehr nach einem C++ Problemchen aus.... Meine Lösung, sowas zu machen:

    #include <iostream>
    #include <algorithm>
    #include <string>
    #include <cstdio>
    using namespace std;
    
    string int2bin(int f)
    {
        string erg;
    
        do 
            erg += '0'+(f&1);
        while (f >>= 1);
    
        reverse(erg.begin(), erg.end());
    
        return erg;
    }
    
    int main()
    {
        cout << "Bin: " << int2bin(64) << endl;
        getchar();
    }
    

    Als Compiler habe ich den gcc 3.1 verwendet.



  • wenn du nicht gerad gcc benutzt schau mal ob dein Compiler itoa unterstützt,
    falls ja numm das



  • warum holst du so einen alten Beitrag hoch? 👎 👎



  • @ pad
    der beitrag war von weihnachten.. hmm ist dir auch zu heiß und sehnst dich nach schnee??



  • 🙄 38 grad im Zimmer, Jolt alle, kurz nach Mitternacht auf alles geschaut nur nicht aufs Datum 😮


Anmelden zum Antworten