10 Stimmen

Bedeutung negativer Werte des Typs char in C

  1. Zeichen in 'C' werden verwendet, um Zeichen darzustellen.
  2. Zahlen, die Zeichen in allen Code-Seiten darstellen, sind immer positiv.

Was ist der Nutzen von vorzeichenbehafteten Zeichen?? Werden negative Werte in Zeichen nur als ganze Werte in einem kleineren integralen Datentyp als int und short verwendet?? Haben sie keine andere Interpretation??(wie positive Werte in Zeichen, die Zeichen darstellen)

1voto

Es ist erwähnenswert, dass char ein eigenständiger Typ ist, der sowohl von signed char als auch von unsigned char verschieden ist.

0voto

Richard Pennington Punkte 19289

In C und C++ können chars signiert oder unsigned sein. Eine char-Variable kann verwendet werden, um einen kleinen Ganzzahlwert zu speichern. Dies ist aus mehreren Gründen nützlich:

  • Auf kleinen Maschinen, z.B. einem 8-Bit-Mikro. Es könnte einen effizienteren Zugriff und Manipulation ermöglichen.
  • Wenn Sie ein großes Array kleiner Werte haben möchten, z.B. 100K, können Sie eine Menge Speicher sparen, indem Sie ein Array von chars anstatt z.B. ints verwenden.

In C ist ein Zeichenliteral eine Ganzzahlkonstante. '0' entspricht 48.

0voto

In C wird ein char (einschließlich signed char und unsigned char) verwendet, um ein Byte zu speichern, das der C-Standard als eine kleine Ganzzahl definiert, die mindestens 8 Bits groß ist.

Sowohl vorzeichenbehaftete als auch vorzeichenlose Bytes sind genauso nützlich wie größere Ganzzahlen. Wenn Sie eine sehr große Anzahl kleiner Zahlen (0..255 für unsigned, -127..127 für signed[1]) in einem Array speichern, verwenden Sie möglicherweise Bytes anstelle von beispielsweise short ints, um Speicherplatz zu sparen.

Historisch gesehen waren ein Byte und ein Textzeichen ziemlich dasselbe. Dann wurde jemandem klar, dass es mehr Sprachen als Englisch gibt. Heutzutage ist Text viel komplizierter, aber es ist zu spät, um den Namen des char-Typs in C zu ändern.

[1] -128..127 für Maschinen mit Zweierkomplementdarstellung für negative Zahlen, aber der C-Standard garantiert das nicht.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X