C ++ typmodifierare: korta, långa, signerade och osignerade

I denna handledning lär vi oss om typmodifierare och hur man använder dem i C ++ programmering med hjälp av exempel.

I C ++ programmering används typmodifierare för att ändra betydelsen av de grundläggande datatyperna.

Det finns fyra typmodifierare i C ++.

  • short
  • long
  • signed
  • unsigned

Här är en kort sammanfattning:

Data typ Storlek (i byte) Menande
signed int 4 används för heltal (motsvarande int)
unsigned int 4 kan bara lagra icke-negativa heltal
short 2 används för små heltal (intervall -32768 till 32767 )
long minst 4 används för stora heltal (motsvarande long int)
unsigned long 4 används för stora positiva heltal eller 0 (motsvarande unsigned long int)
long long 8 används för mycket stora heltal (motsvarande long long int).
unsigned long long 8 används för mycket stora positiva heltal eller 0 (motsvarande unsigned long long int)
long double 8 används för stora flytpunktsnummer
signed char 1 används för tecken (garanterat intervall -127 till 127 )
unsigned char 1 används för tecken (intervall 0 till 255 )

kort typ Modifier

Vi kan använda shortför små heltal (i intervallet −32,767till +32,767).

Till exempel,

 // small integer short a = 12345;

Här är a en shortheltalsvariabel.

Obs: short motsvarar short int.

lång typ modifierare

Om vi ​​behöver lagra ett stort heltal (i intervallet -2147483647 till 2147483647) kan vi använda typspecifikatorn long. Till exempel,

 // large integer long b = 123456;

Obs: long motsvarar long int.

Modifieraren för lång typ kan också användas med doublevariabler.

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

Obs! För att ange long doubleanvänder vi Lsuffixet. Om vi ​​inte använder suffixet Lär det ett doublevärde som konverteras till long double(vilket kan leda till dataförlust).

lång lång

longkan upprepas två gånger för att skapa long longtypen. Denna typ används för ännu större antal än long. long longtypmodifierare kan endast användas med int.

Till exempel,

 // long long int long long num = 12345678;

signerade och osignerade modifierare

Signerade variabler kan innehålla både positiva och negativa heltal inklusive noll . Till exempel,

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

Här,

  • x har ett positivt värderat heltal
  • y har ett negativt värderat heltal
  • z har ett nollvärderat heltal

Notera:

  • Som standard är heltal signed. Därför signed intkan vi direkt använda det istället för int.
  • signed och osignerad kan endast användas med int- och char-typer.

De osignerade variablerna kan innehålla endast icke-negativa helvärden. Till exempel,

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

Här,

  • x har ett positivt värderat heltal
  • y håller noll

In general, an int variable can store a range of values from -2,147,483,648 to 2,147,483,647. Whereas, an unsigned int variable can store a range of values from 0 to 4,294,967,295.

signed, unsigned and plain char

C++ has 3 different char types: char, signed char and unsigned char. In practice, there are basically only 2 types: signed char and unsigned char.

This is because even though char is not the same as signed char or unsigned char in standard C++, different compilers treat char as either signed char or unsigned char according to their own preference.

Note: When we only use char instead of signed char or unsigned char, this type is known as plain char.

Som du kanske har gissat signed charkan lagra både positiva och negativa heltal, medan unsigned charbara kan lagra positiva heltal (inklusive 0 ).

Det garanterade intervallet av heltalsvärden signed charkan lagras är -127 till 127 medan intervallet unsigned charär 0 till 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;

Här,

  • plain_1 har ett positivt värderat heltal
  • plain_2 har ett nollvärderat heltal
  • sin_1 har ett positivt värderat heltal
  • sin_2 har ett nollvärderat heltal
  • sin_3 har ett negativt värderat heltal
  • unsin_1 har ett negativt värderat heltal
  • unsin_2 har ett nollvärderat heltal

Obs! Det är att föredra att inte använda vanlig char för att utföra numeriska manipulationer. signerad char eller osignerad char bör användas för det istället. Vanlig röd bör endast användas för att lagra teckenvärden.

Intressanta artiklar...