C ++ Type modifikatorer: korte, lange, signerte og usignerte

I denne opplæringen vil vi lære om typemodifikatorer og hvordan du bruker dem i C ++ programmering ved hjelp av eksempler.

I C ++ programmering brukes typemodifikatorer til å endre betydningen av de grunnleggende datatypene.

Det er fire modifikatorer i C ++.

  • short
  • long
  • signed
  • unsigned

Her er et kort sammendrag:

Data-type Størrelse (i byte) Betydning
signed int 4 brukt for heltall (tilsvarer int)
unsigned int 4 kan bare lagre ikke-negative heltall
short 2 brukes til små heltall (område -32768 til 32767 )
long minst 4 brukt for store heltall (tilsvarer long int)
unsigned long 4 brukes til store positive heltall eller 0 (tilsvarer unsigned long int)
long long 8 brukes til veldig store heltall (tilsvarer long long int).
unsigned long long 8 brukes til veldig store positive heltall eller 0 (tilsvarer unsigned long long int)
long double 8 brukes til store flytende tall
signed char 1 brukt for tegn (garantert område -127 til 127 )
unsigned char 1 brukt for tegn (område 0 til 255 )

kort type Modifier

Vi kan bruke shortfor små heltall (i området −32,767til +32,767).

For eksempel,

 // small integer short a = 12345;

Her er a en shortheltallvariabel.

Merk: short tilsvarer short int.

lang Type Modifier

Hvis vi trenger å lagre et stort heltall (i området -2147483647 til 2147483647), kan vi bruke typespesifikatoren long. For eksempel,

 // large integer long b = 123456;

Merk: long tilsvarer long int.

Modifikatoren for lang type kan også brukes med doublevariabler.

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

Merk: For å indikere long doublebruker vi Lsuffikset. Hvis vi ikke bruker suffikset L, er det en doubleverdi som konverteres til long double(som kan føre til tap av data).

lenge lenge

longkan gjentas to ganger for å lage long longtypen. Denne typen brukes til enda større tall enn long. long longtype modifier kan bare brukes med int.

For eksempel,

 // long long int long long num = 12345678;

signerte og usignerte modifikatorer

Signerte variabler kan inneholde både positive og negative heltall inkludert null . 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 verdsatt heltall
  • y har et negativt verdsatt heltall
  • z har et nullverdi heltall

Merk:

  • Som standard er heltall signed. Derfor i stedet for signed int, kan vi bruke direkte int.
  • signed og usignert kan bare brukes med int og char typer.

De usignerte variablene kan bare inneholde ikke-negative heltallverdier. For eksempel,

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

Her,

  • x har et positivt verdsatt heltall
  • y holder null

Generelt kan en intvariabel lagre et verdiområde fra -2,147,483,648 til 2,147,483,647 . Mens en unsigned int-variabel kan lagre et verdiområde fra 0 til 4 294 967 295 .

signert, usignert og vanlig røye

C ++ har 3 forskjellige røye typer: char, signed charog unsigned char. I praksis er det i utgangspunktet bare to typer: signed charog unsigned char.

Dette er fordi selv om chardet ikke er det samme som signed chareller unsigned chari standard C ++, behandles forskjellige kompilatorer charsom enten signed chareller i unsigned charhenhold til deres egen preferanse.

Merk: Når vi bare bruker i charstedet for signed chareller unsigned char, er denne typen kjent som vanlig røye .

Som du kanskje har gjettet, signed charkan lagre både positive og negative heltall, mens det unsigned charbare kan lagre positive heltall (inkludert 0 ).

Det garanterte spekteret av heltallverdier signed charkan lagres er -127 til 127 mens området unsigned charer 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 verdsatt heltall
  • plain_2 har et nullverdi heltall
  • sin_1 har et positivt verdsatt heltall
  • sin_2 har et nullverdi heltall
  • sin_3 har et negativt verdsatt heltall
  • unsin_1 har et negativt verdsatt heltall
  • unsin_2 har et nullverdi heltall

Merk: Det er å foretrekke å ikke bruke vanlig tegn for å utføre numeriske manipulasjoner; signert røye eller usignert røye skal brukes til det i stedet. Vanlig røye skal bare brukes til å lagre tegnverdier.

Interessante artikler...