Tässä opetusohjelmassa opitaan esimerkkien avulla tyypin muokkaajista ja niiden käytöstä C ++ - ohjelmoinnissa.
C ++ - ohjelmoinnissa tyypin muokkaajia käytetään muuttamaan perustietotyyppien merkitystä.
C ++: ssa on neljä tyyppimuutosta.
short
long
signed
unsigned
Tässä on lyhyt yhteenveto:
Tietotyyppi | Koko (tavuina) | Tarkoitus |
---|---|---|
signed int | 4 | käytetään kokonaislukuihin (vastaa int ) |
unsigned int | 4 | voi tallentaa vain ei-negatiivisia kokonaislukuja |
short | 2 | käytetään pienille kokonaisluvuille (alue -32768 - 32767 ) |
long | vähintään 4 | käytetään suurille kokonaisluvuille (vastaa long int ) |
unsigned long | 4 | käytetään suurille positiivisille kokonaisluvuille tai 0 (vastaa unsigned long int ) |
long long | 8 | käytetään erittäin suurille kokonaislukuille (vastaa long long int ). |
unsigned long long | 8 | käytetään erittäin suurille positiivisille kokonaisluvuille tai 0 (vastaa unsigned long long int ) |
long double | 8 | käytetään suuriin liukulukuihin |
signed char | 1 | käytetään merkkeihin (taattu alue -127 - 127 ) |
unsigned char | 1 | käytetään merkkeihin (alue 0-255 ) |
lyhyt tyypin muokkaaja
Voimme käyttää short
varten pieniä kokonaislukuja (välillä −32,767
ja +32,767
).
Esimerkiksi,
// small integer short a = 12345;
Tässä a on short
kokonaislukumuuttuja.
Huomaa: short
vastaa short int
.
pitkä tyypin muuttaja
Jos meidän on tallennettava suuri kokonaisluku (välillä -2147483647 - 2147483647), voimme käyttää tyyppimääritintä long
. Esimerkiksi,
// large integer long b = 123456;
Huomaa: long
vastaa long int
.
Pitkätyyppistä modifikaattoria voidaan käyttää myös double
muuttujien kanssa.
// large floating-point number long double c = 0.333333333333333333L;
Huomautus: Jos haluat osoittaa long double
, käytämme L
pääte. Jos emme käytä loppuliitettä L
, se double
muunnetaan arvoksi long double
(mikä voi johtaa tietojen menetykseen).
pitkä kauan
long
voidaan toistaa kahdesti long long
tyypin luomiseksi . Tätä tyyppiä käytetään jopa suurempiin numeroihin kuin long
. long long
tyypin muuttajaa voidaan käyttää vain int
.
Esimerkiksi,
// long long int long long num = 12345678;
allekirjoitetut ja allekirjoittamattomat muokkaajat
Allekirjoitettuihin muuttujiin voi sisältyä sekä positiivisia että negatiivisia kokonaislukuja nolla mukaan lukien . Esimerkiksi,
// positive valued integer signed int x = 23; // negative valued integer signed int y = -13; // zero-valued integer signed int z = 0;
Tässä,
- x: llä on positiivinen kokonaisluku
- y: llä on negatiivinen kokonaisluku
- z: llä on nolla-arvoinen kokonaisluku
Huomautus:
- Oletuksena kokonaisluvut ovat
signed
. Siksisigned
int
voimme sen sijaan käyttää suoraanint
. signed
ja allekirjoittamatonta voidaan käyttää vain int- ja char-tyyppien kanssa.
Unsigned muuttujat voidaan pitää vain ei-negatiivisia kokonaislukuarvoja. Esimerkiksi,
// positive valued integer unsigned int x = 2; unsigned int y = 0;
Tässä,
- x: llä on positiivinen kokonaisluku
- y on nolla
Yleensä int
muuttuja voi tallentaa arvon vaihteluväliltä -2,147,483,648 - 2,147,483,647 . Ottaa huomioon, unsigned in
t muuttuja voi tallentaa erilaisia arvoja 0 4294967295 .
allekirjoitettu, allekirjoittamaton ja tavallinen merkki
C ++ on 3 eri merkkiä tyyppiä: char
, signed char
ja unsigned char
. Käytännössä on periaatteessa vain 2 tyyppiä: signed char
ja unsigned char
.
Tämä johtuu siitä, että vaikka eri kääntäjät char
eivät olekaan samanlaisia kuin tavallisessa C ++: ssa signed char
tai unsigned char
tavallisessa C ++: ssa, ne käsittelevät char
joko kumpaakin signed char
tai unsigned char
omien mieltymystensä mukaan.
Huomautus: Kun käytämme vain char
sijasta signed char
tai unsigned char
tällainen kutsutaan tavallinen nieriä .
Kuten olet ehkä arvannut, signed char
voi tallentaa sekä positiivisia että negatiivisia kokonaislukuja, kun taas unsigned char
vain positiivisia kokonaislukuja (mukaan lukien 0 ).
Taattu alue kokonaisluku arvot signed char
voidaan tallentaa on -127-127 , kun alue unsigned char
on 0-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;
Tässä,
- tavallinen_1 pitää sisällään positiivisen arvon
- tavallinen_2 pitää nollan arvoista kokonaislukua
- sin_1: llä on positiivinen kokonaisluku
- sin_2: llä on nolla-arvoinen kokonaisluku
- sin_3 pitää sisällään negatiivisen arvon
- unsin_1: lla on negatiivinen kokonaisluku
- unsin_2: lla on nolla-arvoinen kokonaisluku
Huomaa: On suositeltavaa olla käyttämättä pelkkää merkkiä numeeristen manipulaatioiden suorittamiseen; sen sijaan tulisi käyttää allekirjoitettua merkkiä tai allekirjoittamatonta merkkiä. Pelkkää merkkiä tulisi käyttää vain merkkiarvojen tallentamiseen.