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 short
til små heltal (i området −32,767
til +32,767
).
For eksempel,
// small integer short a = 12345;
Her er a en short
heltalsvariabel.
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 double
variabler.
// large floating-point number long double c = 0.333333333333333333L;
Bemærk: For at angive long double
bruger vi L
suffikset. Hvis vi ikke bruger suffikset L
, er det en double
værdi, der konverteres til long double
(hvilket kan resultere i tab af data).
lang lang
long
kan gentages to gange for at oprette long long
typen. Denne type bruges til endnu større antal end long
. long long
type 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
. Derforsigned
int
kan vi i stedet for bruge det direkteint
. 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 int
variabel gemme et interval af værdier fra -2,147,483,648 til 2,147,483,647 . Mens en unsigned in
t-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 char
og unsigned char
. I praksis er der stort set kun to typer: signed char
og unsigned char
.
Dette skyldes, at selvom char
det ikke er det samme som signed char
eller unsigned char
i standard C ++, behandles forskellige compilers char
som enten signed char
eller unsigned char
efter deres egen præference.
Bemærk: Når vi kun bruger i char
stedet for signed char
eller unsigned char
, er denne type kendt som almindelig char .
Som du måske har gættet, signed char
kan gemme både positive og negative heltal, mens det unsigned char
kun kan gemme positive heltal (inklusive 0 ).
Det garanterede interval af heltalsværdier, der signed char
kan gemmes, er -127 til 127, mens intervallet unsigned char
er 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.