Codeerklärung
-
Hi ich bräuchte ne Codeerklärung :
char c='g'; (c & 32) ? printf("1") : printf("0");
Warum wird bei c='g' eine 1 ausgegeben und bei c='G' eine 0 .
Kann mir das jemand erklären ?
-
toxor schrieb:
Warum wird bei c='g' eine 1 ausgegeben und bei c='G' eine 0 .
Kann mir das jemand erklären ?'c & 32' prüft ob bit 5 gesetzt ist. das ist offenbar bei 'g' der fall und bei 'G' nicht.
-
"c&32" ist ein Bit-Und Operator. In diesem Fall liefert der Ausdruck entweder 0 (false) oder 32 (true), je nachdem ob das 5te Bit von c gesetzt ist. Und wenn du dir die ASCII-Tabelle mal ansiehst - bei Kleinbuchstaben ist dieses Bit gesetzt, bei Großbuchstaben nicht.
-
Thx ihr freaks