hi!
bin gerade am progn mit c++ und hänge schon einige zeit.
ich möchte die bitfolge eines characters (im konkreten fall 0xBF; dargestellt im hex editor mit '¿' - wie passend :shiner:) als dezimalzahl in eine integer variable schreiben. z.b. sollte beim buchstaben 'a' in der integer variable dann der dezimalwert 97 (binär: b110 0001) stehen (was auch so ist).
führe ich mein programm aus so wird '¿' zu einem wert von dezimal -65, was bei einem signed interger dem binärwert von b1100 0001 entspricht. laut hex-editor entspricht dem '¿' jedoch ein 0xBF was wiederum b1011 1111 entspricht, sich also nicht der programmausgabe deckt.
also hat es hier irgendwas mit dem casten auf sich, nur was wäre jetzt meine frage. wie gesagt, mir geht es darum, dass die bitfolgen übereinstimmen.
hier der code. das schreiben in eine text datei tut hier glaub ich nichts zur sache.
ofstream out("test.txt");
if(! out){
cout<<"Cannot open output file\n";
}
char plainChar = '¿'; // ¿ ist in hex laut hex-Editor 0xBF
int charToInt = (int) plainChar;
// Ergebnis oberer Zeile: "-65 :(int) plainChar
//unsigned int charToInt = (unsigned int) plainChar;
// Ergebnis oberer Zeile: "4294967231 :(int) plainChar"
out << charToInt << "\t:(int) plainChar" << endl;
out.close();
Alles anzeigen
bin für jede hilfe dankbar!