C ++ - Typmodifikatoren: kurz, lang, signiert und ohne Signatur

In diesem Tutorial lernen wir anhand von Beispielen, wie Typmodifikatoren und ihre Verwendung in der C ++ - Programmierung verwendet werden.

In der C ++ - Programmierung werden Typmodifikatoren verwendet, um die Bedeutung der grundlegenden Datentypen zu ändern.

In C ++ gibt es vier Typmodifikatoren.

  • short
  • long
  • signed
  • unsigned

Hier ist eine kurze Zusammenfassung:

Datentyp Größe (in Bytes) Bedeutung
signed int 4 wird für ganze Zahlen verwendet (entspricht int)
unsigned int 4 kann nur nicht negative ganze Zahlen speichern
short 2 wird für kleine ganze Zahlen verwendet (Bereich -32768 bis 32767 )
long mindestens 4 wird für große ganze Zahlen verwendet (entspricht long int)
unsigned long 4 wird für große positive ganze Zahlen oder 0 (äquivalent zu unsigned long int) verwendet
long long 8 wird für sehr große ganze Zahlen verwendet (entspricht long long int).
unsigned long long 8 wird für sehr große positive ganze Zahlen oder 0 (äquivalent zu unsigned long long int) verwendet
long double 8 wird für große Gleitkommazahlen verwendet
signed char 1 wird für Zeichen verwendet (garantierter Bereich -127 bis 127 )
unsigned char 1 wird für Zeichen verwendet (Bereich 0 bis 255 )

Kurztyp-Modifikator

Wir können shortfür kleine ganze Zahlen (im Bereich −32,767bis +32,767) verwenden.

Beispielsweise,

 // small integer short a = 12345;

Hier ist a eine shortganzzahlige Variable.

Hinweis: short entspricht short int.

langer Typ Modifikator

Wenn wir eine große Ganzzahl speichern müssen (im Bereich von -2147483647 bis 2147483647), können wir den Typbezeichner verwenden long. Beispielsweise,

 // large integer long b = 123456;

Hinweis: long entspricht long int.

Der Long-Typ-Modifikator kann auch mit doubleVariablen verwendet werden.

 // large floating-point number long double c = 0.333333333333333333L;

Hinweis: Zur Angabe verwenden long doublewir das LSuffix. Wenn wir das Suffix nicht verwenden L, wird es in einen doubleWert konvertiert long double(was zu Datenverlust führen kann).

lang Lang

longkann zweimal wiederholt werden, um den long longTyp zu erstellen . Dieser Typ wird für noch größere Zahlen als verwendet long. long longTypmodifikator kann nur mit verwendet werden int.

Beispielsweise,

 // long long int long long num = 12345678;

signierte und nicht signierte Modifikatoren

Vorzeichenbehaftete Variablen können sowohl positive als auch negative Ganzzahlen einschließlich Null enthalten . Beispielsweise,

 // positive valued integer signed int x = 23; // negative valued integer signed int y = -13; // zero-valued integer signed int z = 0;

Hier,

  • x enthält eine Ganzzahl mit positivem Wert
  • y enthält eine Ganzzahl mit negativem Wert
  • z enthält eine Ganzzahl mit dem Wert Null

Hinweis:

  • Standardmäßig sind Ganzzahlen signed. Daher signed intkönnen wir stattdessen direkt verwenden int.
  • signed und unsigned können nur mit den Typen int und char verwendet werden.

Die vorzeichenlosen Variablen können nur nicht negative ganzzahlige Werte enthalten. Beispielsweise,

 // positive valued integer unsigned int x = 2; unsigned int y = 0;

Hier,

  • x enthält eine Ganzzahl mit positivem Wert
  • y hält Null

Im Allgemeinen kann eine intVariable einen Wertebereich von -2.147.483.648 bis 2.147.483.647 speichern . Während eine unsigned int-Variable einen Wertebereich von 0 bis 4.294.967.295 speichern kann .

signiert, nicht signiert und normal char

C ++ hat 3 verschiedene char - Typen: char, signed charund unsigned char. In der Praxis gibt es grundsätzlich nur zwei Typen: signed charund unsigned char.

Dies liegt daran , dass verschiedene Compiler, obwohl sie charnicht mit signed charoder unsigned charin Standard-C ++ identisch sind , charentweder signed charoder unsigned charnach ihren eigenen Vorlieben behandeln.

Hinweis: Wenn wir nur charanstelle von signed charoder verwenden unsigned char, wird dieser Typ als einfaches Zeichen bezeichnet .

Wie Sie vielleicht erraten haben, signed charkönnen sowohl positive als auch negative Ganzzahlen unsigned chargespeichert werden , während nur positive Ganzzahlen (einschließlich 0 ) gespeichert werden können .

Der garantierte Bereich von ganzzahligen Werte signed charspeichern können , ist -127 bis 127 , während der Bereich von unsigned charist 0 bis 255 .

 // plain char char plain_1 = 65; char plain_2 = 0; // plain char with negative value // might cause problems with some compilers char plain_3 = -56; // signed char signed char sin_1 = 12; signed char sin_2 = 0; signed char sin_3 = -12; // unsigned char unsigned char unsin_1 = -85; unsigned char unsin_2 = 0;

Hier,

  • plain_1 enthält eine Ganzzahl mit positivem Wert
  • plain_2 enthält eine Ganzzahl mit dem Wert Null
  • sin_1 enthält eine Ganzzahl mit positivem Wert
  • sin_2 enthält eine Ganzzahl mit dem Wert Null
  • sin_3 enthält eine Ganzzahl mit negativem Wert
  • unsin_1 enthält eine Ganzzahl mit negativem Wert
  • unsin_2 enthält eine Ganzzahl mit dem Wert Null

Hinweis: Es ist vorzuziehen, kein einfaches Zeichen zu verwenden, um numerische Manipulationen durchzuführen. Stattdessen sollte ein signiertes oder ein nicht signiertes Zeichen verwendet werden. Ein einfaches Zeichen sollte nur zum Speichern von Zeichenwerten verwendet werden.

Interessante Beiträge...