C ++ Type Modifiers: kort, lang, ondertekend en niet-ondertekend

In deze tutorial leren we met behulp van voorbeelden over typemodificatoren en hoe je deze kunt gebruiken in C ++ - programmeren.

In C ++ - programmering worden typemodificatoren gebruikt om de betekenis van de fundamentele gegevenstypen te wijzigen.

Er zijn vier typemodificatoren in C ++.

  • short
  • long
  • signed
  • unsigned

Hier is een korte samenvatting:

Data type Grootte (in bytes) Betekenis
signed int 4 gebruikt voor gehele getallen (gelijk aan int)
unsigned int 4 kan alleen niet-negatieve gehele getallen opslaan
short 2 gebruikt voor kleine gehele getallen (bereik -32768 tot 32767 )
long tenminste 4 gebruikt voor grote gehele getallen (gelijk aan long int)
unsigned long 4 gebruikt voor grote positieve gehele getallen of 0 (equivalent aan unsigned long int)
long long 8 gebruikt voor zeer grote gehele getallen (gelijk aan long long int).
unsigned long long 8 gebruikt voor zeer grote positieve gehele getallen of 0 (equivalent aan unsigned long long int)
long double 8 gebruikt voor grote getallen met drijvende komma
signed char 1 gebruikt voor tekens (gegarandeerd bereik -127 tot 127 )
unsigned char 1 gebruikt voor tekens (bereik 0 tot 255 )

korte type Modifier

We kunnen gebruiken shortvoor kleine gehele getallen (in het bereik −32,767tot +32,767).

Bijvoorbeeld,

 // small integer short a = 12345;

Hier is a een shortinteger-variabele.

Let op: short is gelijk aan short int.

lange Type Modifier

Als we een groot geheel getal moeten opslaan (in het bereik -2147483647 tot 2147483647), kunnen we de typespecificatie gebruiken long. Bijvoorbeeld,

 // large integer long b = 123456;

Let op: long is gelijk aan long int.

De lange typemodificator kan ook worden gebruikt met doublevariabelen.

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

Opmerking: om aan te geven long doublegebruiken we het Lachtervoegsel. Als we het achtervoegsel niet gebruiken L, is het een doublewaarde waarnaar wordt geconverteerd long double(wat kan leiden tot gegevensverlies).

lang Lang

longkan twee keer worden herhaald om het long longtype te creëren . Dit type wordt gebruikt voor nog grotere aantallen dan long. long longtype modifier kan alleen worden gebruikt met int.

Bijvoorbeeld,

 // long long int long long num = 12345678;

ondertekende en niet-ondertekende Modifiers

Ondertekende variabelen kunnen zowel positieve als negatieve gehele getallen bevatten, inclusief nul . Bijvoorbeeld,

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

Hier,

  • x bevat een geheel getal met een positieve waarde
  • y bevat een geheel getal met een negatieve waarde
  • z bevat een geheel getal met een nulwaarde

Opmerking:

  • Standaard zijn gehele getallen signed. Daarom signed intkunnen we in plaats van direct gebruiken int.
  • signed en unsigned kan alleen gebruikt worden met int en char types.

De niet-ondertekende variabelen kunnen alleen niet-negatieve gehele getallen bevatten. Bijvoorbeeld,

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

Hier,

  • x bevat een geheel getal met een positieve waarde
  • y is nul

In het algemeen kan een intvariabele een reeks waarden opslaan van -2.147.483.648 tot 2.147.483.647 . Terwijl een unsigned int-variabele een reeks waarden van 0 tot 4.294.967.295 kan opslaan .

ondertekend, ongetekend en gewoon char

C ++ heeft 3 verschillende types char: char, signed charen unsigned char. In de praktijk zijn er in principe maar 2 soorten: signed charen unsigned char.

Dit komt omdat, hoewel het charniet hetzelfde is als signed charof unsigned charin standaard C ++, verschillende compilers behandelen charals signed charof unsigned charvolgens hun eigen voorkeur.

Opmerking: wanneer we alleen in charplaats van signed charof gebruiken unsigned char, staat dit type bekend als plain char .

Zoals je misschien al geraden hebt, signed charkan zowel positieve als negatieve gehele getallen unsigned charworden opgeslagen , terwijl alleen positieve gehele getallen (inclusief 0 ) kunnen worden opgeslagen .

De gewaarborgde reeks gehele getallen signed charkan opslaan is -127 tot 127 , terwijl het traject unsigned charis 0-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 bevat een geheel getal met een positieve waarde
  • plain_2 bevat een geheel getal met nulwaarde
  • sin_1 bevat een geheel getal met een positieve waarde
  • sin_2 bevat een geheel getal met nulwaarde
  • sin_3 bevat een geheel getal met een negatieve waarde
  • unsin_1 bevat een geheel getal met een negatieve waarde
  • unsin_2 bevat een geheel getal met een nulwaarde

Opmerking: het verdient de voorkeur om geen gewone tekens te gebruiken om numerieke manipulaties uit te voeren; In plaats daarvan moet een ondertekend teken of een niet-ondertekend teken worden gebruikt. Plain char mag alleen worden gebruikt om tekenwaarden op te slaan.

Interessante artikelen...