4 Stimmen

Was ist der Zweck von Signed Char

Was ist der Zweck von signed char, wenn sowohl char als auch signed char im Bereich von -127 bis 127 liegen? An welcher Stelle verwenden wir signed char anstelle von char?

19voto

Lightness Races in Orbit Punkte 367630
  • unsigned char ist vorzeichenlos.

  • signed char unterzeichnet ist.

  • char kann vorzeichenlos sein o abhängig von Ihrer Plattform unterzeichnet.

Utilice signed char wenn Sie unbedingt eine Unterschrift wollen.

Möglicherweise verwandt: Was bedeutet es, wenn ein Zeichen unterzeichnet wird?

7voto

James Kanze Punkte 146902

Es ist die Umsetzung definiert, ob plain char verwendet die gleiche Darstellung wie signed char o unsigned char . signed char war eingeführt, weil einfache char war nicht ausreichend spezifiziert. Außerdem gibt es die Botschaft, die Sie an Ihre Leser senden:

  • einfach char : Zeichendaten
  • signed char : kleine Igel
  • unsigned char : Rohspeicher

( unsigned char kann auch verwendet werden, wenn Sie eine Menge bitweiser Operationen durchführen Operationen durchführen. In der Praxis überschneidet sich das eher mit dem Rohspeicher Nutzung).

2voto

Siehe Lamia,

Zunächst möchte ich den Hintergrund für Ihre Frage vorbereiten.
................................................

char ist ein Datentyp mit zwei Arten:

Zeichen ohne Vorzeichen;

unterzeichnete Zeichen;

(d.h. INTEGRALE DATEN)

.................................................

In verschiedenen Büchern wird dies folgendermaßen erklärt:
char 1byte -128 bis 127 (d. h. standardmäßig vorzeichenbehaftetes Zeichen)

signiertes Zeichen 1Byte -128 bis 127

Zeichen ohne Vorzeichen 1Byte 0 bis 255

.................................................

noch etwas: 1Byte=8 Bits (Null bis 7. Bit)

Da das Flagregister des Prozessors das 7. Bit für die Darstellung des Vorzeichens reserviert (d. h. 1=+ve & 0=-ve)

-37 wird als 1101 1011 dargestellt (das höchstwertige Bit ist 1),

+37 wird als 0010 0101 dargestellt (das höchstwertige Bit ist 0).

.................................................

ähnlich wie bei char wird das letzte Bit standardmäßig als vorzeichenbehaftet angenommen

Und warum?

Weil char auch von den ASCII-Codes der einzelnen Zeichen abhängt (z.B. A=65).

Auf jeden Fall verwenden wir char und benutzen nur 7 Bits.

In diesem Fall, um den Speicherbereich für char/int um 1 Bit zu erhöhen, verwenden wir unsigned char oder unsigned int;

Vielen Dank für die Frage.

1voto

Šimon Tóth Punkte 34318

Beachten Sie, dass auf vielen Systemen, char es signed char .

Was Ihre Frage betrifft: Nun, Sie würden es verwenden, wenn Sie eine kleine vorzeichenbehaftete Zahl benötigen.

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