Binärdarstellung von importiertem Zeichen schlägt fehl



  • Hallo,

    als Vorbereitung zu einem Mp3 Tag Leser spiele ich derzeit etwas mit dem Konvertieren von Dateien herum. Mir geht es erstmal darum, ein fremdes Zeichen / eine fremde Zahl binär darzustellen.

    Dabei habe ich eine Textdatei erstellt, mit z.B. der Zahl 2, was im Binärsystem ja 00000010 ist. Lasse ich mein Programm das machen, kommt 00110010 heraus - wie bei jeder Zahl, die ich reinlade.

    Hier mal mein Ansatz:

    #include <iostream>
    #include <fstream>
    #include <string>
    
    using namespace std;
    
    int main()
    {
    	string line;
    	string daten_gesamt;
    
    	char charVar;
    	char vgl = 1;
    
    	ifstream file;
    
    	file.open("F:/Programmierung/1.txt");
    
    	if (!file)
    		{
    			cout << "Fehler";
    		}
    
    	do
    	{
    
    		getline(file, line);
    
    		daten_gesamt += line;
    
    	} while (!file.eof());
    
    	charVar = daten_gesamt[0];
    
    	file.close();
    
       cout << ((charVar>>7)&0x01);
       cout << ((charVar>>6)&0x01);
       cout << ((charVar>>5)&0x01);
       cout << ((charVar>>4)&0x01);
       cout << ((charVar>>3)&0x01);
       cout << ((charVar>>2)&0x01);
       cout << ((charVar>>1)&0x01);
       cout << ((charVar)&0x01) << endl;
    
    }
    

    Wenn ich der Char Variable manuell eine Zahl zuweise, funktioniert es - der Hund muss also irgendwo im Dateistream begraben liegen.

    Kann mir jemand sagen, was los ist? Danke schon mal

    Ciao


  • Mod

    Scherzkeks: 00110010 = 50 = '2' != 2



  • Och, damit lassen sich ja auch Scherze machen... sowas.
    Nee, super, dann war mein Problem ja nicht mal ein Fehler. Sollte mich mal intensiver mit ASCII beschäftigen; fast jeder Thread hier von mir läuft auf Missverständnisse mit besagter Tabelle hinaus. Schönen Dank 🙂


Log in to reply