Hexadezimale Ausgabe von Chars
-
Folgendes Problem:
Ich will einen char über den cout stream als hexadezimale Zahl ausgeben lassen, also z.b. für 'A' soll als ausgabe 41 erscheinen.Meine Lösung ist folgende:
std::cout << hex << int(char(0x41)) << std::endl;
das funktioniert bis zu dem Hex Wert 0x7F, falls man allerdings einen höheren nimmt:
std::cout << hex << int(char(0x80)) << std::endl;
kommt 0xffffff80 raus!?
Compiler ist MS VC++ 2003, ohne spezielle Einstellungen..
-
bei den hex manipulatoren gehört natürlich noch ein std:: hin, hatte das hier vergessen
-
Ich nehme an, dass char bei dir per default signed ist. Das heißt, 0x80 ist -128, wenn dus in nen int umwandelst, und das ist halt 0xff...ff80. Das einfachste wär wohl, unsigned char statt char zu benutzen bzw. den signed char vorher in nen unsigned char umzuwandeln.
-
jop danke das wars