C ++ -modifikatorer: korte, lange, signerede og usignerede

I denne vejledning lærer vi om typemodifikatorer og hvordan man bruger dem til C ++ programmering ved hjælp af eksempler.

I C ++ programmering bruges typemodifikatorer til at ændre betydningen af ​​de grundlæggende datatyper.

Der er fire typemodifikatorer i C ++.

  • short
  • long
  • signed
  • unsigned

Her er et kort resume:

Datatype Størrelse (i byte) Betyder
signed int 4 bruges til heltal (svarende til int)
unsigned int 4 kan kun gemme ikke-negative heltal
short 2 bruges til små heltal (interval -32768 til 32767 )
long mindst 4 bruges til store heltal (svarende til long int)
unsigned long 4 bruges til store positive heltal eller 0 (svarende til unsigned long int)
long long 8 bruges til meget store heltal (svarende til long long int).
unsigned long long 8 bruges til meget store positive heltal eller 0 (svarende til unsigned long long int)
long double 8 bruges til store flydende numre
signed char 1 bruges til tegn (garanteret interval -127 til 127 )
unsigned char 1 bruges til tegn (interval 0 til 255 )

kort type Modifier

Vi kan bruge shorttil små heltal (i området −32,767til +32,767).

For eksempel,

 // small integer short a = 12345;

Her er a en shortheltalsvariabel.

Bemærk: short svarer til short int.

lang type modifikator

Hvis vi har brug for at gemme et stort heltal (i området -2147483647 til 2147483647), kan vi bruge typespecifikationen long. For eksempel,

 // large integer long b = 123456;

Bemærk: long svarer til long int.

Den lange type modifikator kan også bruges med doublevariabler.

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

Bemærk: For at angive long doublebruger vi Lsuffikset. Hvis vi ikke bruger suffikset L, er det en doubleværdi, der konverteres til long double(hvilket kan resultere i tab af data).

lang lang

longkan gentages to gange for at oprette long longtypen. Denne type bruges til endnu større antal end long. long longtype modifikator kan kun bruges med int.

For eksempel,

 // long long int long long num = 12345678;

underskrevne og usignerede modifikatorer

Signerede variabler kan indeholde både positive og negative heltal inklusive nul . For eksempel,

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

Her,

  • x har et positivt heltal
  • y har et negativt heltal
  • z har et heltal uden værdi

Bemærk:

  • Som helhed er heltal signed. Derfor signed intkan vi i stedet for bruge det direkte int.
  • signed og usigneret kan kun bruges med int- og char-typer.

De usignerede variabler kan kun indeholde ikke-negative heltalværdier. For eksempel,

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

Her,

  • x har et positivt heltal
  • y holder nul

Generelt kan en intvariabel gemme et interval af værdier fra -2,147,483,648 til 2,147,483,647 . Mens en unsigned int-variabel kan gemme et interval af værdier fra 0 til 4.294.967.295 .

underskrevet, usigneret og almindelig char

C ++ har 3 forskellige char typer: char, signed charog unsigned char. I praksis er der stort set kun to typer: signed charog unsigned char.

Dette skyldes, at selvom chardet ikke er det samme som signed chareller unsigned chari standard C ++, behandles forskellige compilers charsom enten signed chareller unsigned charefter deres egen præference.

Bemærk: Når vi kun bruger i charstedet for signed chareller unsigned char, er denne type kendt som almindelig char .

Som du måske har gættet, signed charkan gemme både positive og negative heltal, mens det unsigned charkun kan gemme positive heltal (inklusive 0 ).

Det garanterede interval af heltalsværdier, der signed charkan gemmes, er -127 til 127, mens intervallet unsigned charer fra 0 til 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;

Her,

  • plain_1 har et positivt værdiansat heltal
  • plain_2 har et nultalværdigt heltal
  • sin_1 har et positivt værdiansat heltal
  • sin_2 har et heltal med nulværdi
  • sin_3 har et negativt værdiansat heltal
  • unsin_1 har et negativt heltal
  • unsin_2 har et nultal

Bemærk: Det foretrækkes ikke at bruge almindelig char til at udføre numeriske manipulationer; underskrevet char eller usigneret char skal bruges til det i stedet. Almindelig kultegn bør kun bruges til at gemme tegnværdier.

Interessante artikler...