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 short
för små heltal (i intervallet −32,767
till +32,767
).
Till exempel,
// small integer short a = 12345;
Här är a en short
heltalsvariabel.
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 double
variabler.
// large floating-point number long double c = 0.333333333333333333L;
Obs! För att ange long double
använder vi L
suffixet. Om vi inte använder suffixet L
är det ett double
värde som konverteras till long double
(vilket kan leda till dataförlust).
lång lång
long
kan upprepas två gånger för att skapa long long
typen. Denna typ används för ännu större antal än long
. long long
typmodifierare 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örsigned
int
kan vi direkt använda det istället förint
. 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 in
t 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 char
kan lagra både positiva och negativa heltal, medan unsigned char
bara kan lagra positiva heltal (inklusive 0 ).
Det garanterade intervallet av heltalsvärden signed char
kan 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.