#include <iostream>
using namespace std;
int main()
{
char c1 = 0xab;
signed char c2 = 0xcd;
unsigned char c3 = 0xef;
cout << hex;
cout << c1 << endl;
cout << c2 << endl;
cout << c3 << endl;
}
ich den Ausgang zu erwarten sind wie folgt:Wie gibt man ein Zeichen als Ganzzahl über cout aus?
ab
cd
ef
Doch, ich habe nichts.
Ich denke, das liegt daran, dass Cout immer 'char', 'signed char' und 'unsigned char' als Zeichen und nicht als 8-Bit-Ganzzahlen behandelt. "Char", "signed char" und "unsigned char" sind jedoch alle ganzzahlige Typen.
Also meine Frage ist: Wie ein Zeichen als Integer durch Cout ausgeben?
PS: static_cast (...) ist hässlich und benötigt mehr Arbeit, um zusätzliche Bits zu trimmen.
afaik, Casting ist der effektivste Weg, ... (zum Beispiel 'static_cast()') –
Nim
es 'int' Gießen? –
btw. Der einzige Grund, warum Sie auf "Trimmen" zurückgreifen müssen, ist, dass Sie die Typen offensichtlich nicht korrekt verwenden (die ersten beiden * überschneiden sich eindeutig) und das ist, was Sie als Ergebnis erhalten. Wenn du immer den richtigen Typ benutzt hast, dann ist der Cast einfach: 'static_cast (...)' ... –
Nim