| muffinhunter 26.06.2010 15:47 | eine frage: muss des unsigned da stehen? des heißt doch "ohne vorzeichen" - hat ein char (Zeichen) denn Vorzeichen? bitte klär mit auf ![]() |
| FTK 27.06.2010 21:55 | Der ASCII-Code hat ja eigentlich nur 128 Zeichen, was sieben Bit enspricht. Ebensoviele hat eine Char-Variable - plus ein Vorzeichen-Bit. Will man nun aber den erweiterten Code (mit den Sonderzeichen, d.h solchen deren Nummer höher als 127 ist, man spricht vom "erweiterten ASCII-Satz" verwenden, wird eben dieses Bit gebraucht. Also teilt man dem Compiler mit, dass man das achte Bit für Zahlen verwenden möchte.Mit den Sonderzeichen gibt es im Übrigen ein Problem. Ihre Nummer ist nämlich schon seit MS-DOS-Zeiten länderspezifisch. Mit anderen Worten: was bei uns als ein "Ä" angezeigt wird, ist in anderen Ländern etwas ganz anderes. |
| muffinhunter 28.06.2010 00:12 | Habs grad getestet: mit #define geht`s viel kürzer (is fast das selbe wie hier) z.B. für die Konstante ue (die ü verkörpert) #define ue static_cast<unsigned char>(129) oder #define ue "/x81" //sogenannter OEM-Code statt ASCII-Code // Das einfache / hier bitte durch das Escape- Zeichen ersetzen (wird von pi7 leider nicht angezeigt - liegt evtl an html, was weiß ich ^^) Da stellt sich mir die Frage: Wozu braucht man dann einen neuen namespace, wenns auch ohne geht? @FTK: Wozu braucht man das Vorzeichen beim Char? Wenn man nur den normalen ASCII-Code benutzt, dann wird des ja nich benötigt. Wenn man den erweiterten benutzt, wirds eben mitverwendet. Braucht man dann jemals ein signed char? Gibts sowas überhaupt? bzw: Heißt des etwa, dass der Compiler bei nem Vorzeichen vorm Char erkennt "aha, da brauch ich nur den ASCII-Code" und bei unsigned "aha, der will Sonderzeichen" oder so? (ich glaub, ich lass mir meine Fragen hierzu bald in nem Foren-Topic beantworten ^^) PS: Toller Blog ![]() |