Buchstabe zu Binär mittels switch



  • Hallo liebe Community,

    ich habe nun nach ein paar kleineren Projekten etwas aufwändigeres im Sinn und zwar möchte ich ein Programm schreiben, welches den Binärcode von einem Buchstaben (erstmal nur kleines Alphabet a-z) ausgibt.

    Bestimmt kann man auch den Binärcode immer erechnen lassen, aber so gut bin ich noch nicht, deshalb will ich es aufwändig betreiben. Ich dachte da an eine "Switch-Schleife", nur ich scheiter an der Umsetzung, hier mal mein erster Anfang:

    #include <iostream>
    using namespace std;
    
    //Deklarierung
    int eingabe;
    int a=01100001;
    
    //Programm
    int main () {
    
    //Ausgabe und Eingabe
    cout<<"r0m's primitver Buchstabe zu Binaer Uebersetzer\n";
    cin>>eingabe;
    
    //Switch Befehl
    switch(eingabe)
    {
    case 1:
    cout<<"a= "<<a;    
    
    }
    

    Da fehlt noch jede Menge, aber wie kann ich machen, dass wenn man 'a' eingibt direkt "a= 01100001" ausgegeben wird?

    Danke und Gruß,
    Marc



  • Erstmal ist "int a=01100001;" keine Binärzahl, sondern eine Oktalzahl. Und zweitens gibt es effektivere Methoden als dein switch-Konstrukt für diese Aufgabe:

    bitset<8> bitval;
    char cval;
    cin>>cval;
    bitval=cval;
    cout<<cval<<"="<<bitval<<endl;
    


  • Hi,

    danke.

    aber was bringt es mir jetzt, wenn er das z.b. a=97 macht? ich will doch den binärcode angezeigt bekommen 😕

    Danke,
    Marc



  • Wie kommst du jetzt auf a=97?



  • OK, kurz - bitset<> ist eine STL-Klasse, die einen Stapel von Bit-Werten speichert - die kann unter anderem mit einem long-Wert gefüttert werden, der dann als Binärzahl augesplittet wird und gibt (an einen Stream weitergeleitet) seine Bits als 0/1-Folge aus.

    PS: Wenn du eine Referenz zu Bitsets suchst, hier findest du etwas.

    Semiprofessionell könntest du auch in einer Schleife alle Bits einzeln abfragen:

    for(unsigned char c=128;c>0;c>>=1)
      cout<<(a&c)?'0':'1';
    

    (Zur Erklärung: 128 entspricht dem höchsten Bit eines char, von dort aus geh ich einzeln alle Bits durch und teste jeweils (per &), ob sie im Eingabezeichen vorkommen)



  • Vielen Dank,

    hat mir weiter geholfen, werde mir die Referenz mal genauer angucken!

    bye,
    marc
    🙂


Anmelden zum Antworten