int in char
-
guten tag!
ich brauch ne 16 bit feld in char!
ich hab da mal ne verständnisfrage..
wenn ich zb
char=128; //dann schreibt er wirklich 1000 0000 in das byte?!
char='A' // dann denn ascii code vom buchstaben a?!wie kann ich mir die zahl dann später ausgeben?
-
#include <iostream.h> using namespace std; int main(int argc, char* argv[]) { char bla = 128; cout << bla << endl; bla = 'A': cout << bla << endl; }
-
Ja, 'char' ist ein 8-Bit Ganzzahltyp (und char-Literale haben einen Wert entsprechend ihrem ASCII-Code). Die Ein-/Ausgabefunktionen von C++ (über iostreams) wandeln diese Zahlenwerte dann um in das entsprechende Zeichen (nach ASCII-Code) - wenn du den Zahlenwert benötigst, mußt du ihn casten:
char c = ...; cout<<c<<endl; //Ausgabe als ASCII-Zeichen cout<<(int)c<<endl; //Ausgabe als ZahlenwertEinen 16-Bit-Wert wirst du nicht in einen einzelnen char unterbringen können, aber du könntest ihn auf zwei char's aufteilen:
short val = ...; char hi = (val>>8)&0xFF;//obere Hälfte char lo = val&0xFF; //untere Hälfte
-
c++ hat noch wchar_t als 16 bit typ.
-
thordk schrieb:
c++ hat noch wchar_t als 16 bit typ.
Der zu wchar_t gehörende integrale Grundtyp ist implementationsspezifisch.
-
achja, ganz vergessen, dass ausser char in c++ ja nix zuverlässig is Oo