Koliko "uvesti" ove vrste podataka. Tip s pomičnim zarezom (float, double i long double) Tekstualni tip podataka s c

Listovi za čitanje

Prije danimi Sve informacije prikazane su na način koji vam omogućuje automatizaciju prikupljanja, spremanja i obrade u EOM-u (brojevi, simboli, bitovi itd.).
Podaci iz programa mogu biti vikendima(postavlja se na ulazu programa) odn rezultati rezanja(srednji i odlazni).
Svi podaci - promjenjivi i postojani - pripadaju tipu pjevanja.
S tipom kože ovih pletiva vrijednost raspona(broj bajtova po vrijednosti) dopuštene operacije.

C/C++ tipovi podataka dijele se na glavniі vikend.
Glavne vrste uključuju:

  1. poništiti(Prazan tip),
  2. int(cijela vrsta),
  3. plutati(govorni brojevi s pomičnim zarezom),
  4. dvostruko(govorni brojevi s pomičnim zarezom visoke preciznosti),
  5. char(vrsta znaka),
  6. bool- Logično.

Vrste skladišta

Za formuliranje drugih vrsta podataka koristite Vikory glavni tipi + tzv specifikatori. Vrste podataka, stvorene s urakhuvannyam standardne vrste prema specifikacijama, tzv tipovi podataka skladišta. C++ ima četiri specifikatora tipa podataka:
  1. kratak – kratak;
  2. dugo – dugo;
  3. potpisan-znak;
  4. nepotpisan
Vrste planinarenja:
  • masivi,
  • funkcije,
  • razred,
  • vozvniki,
  • posilannya,
  • strukture,
  • ob'ednannya.

Vrsta lika

Počast tipu char Memorija računala će uvijek zauzimati 1 bajt. Stoga, ovisno o veličini vrste znaka, dodajte onoliko memorijskog prostora koliko vam je potrebno za spremanje bilo kojeg od 256 znakova na tipkovnici.
Vrsta znaka može biti znak zi ili drugo nepotpisan.
Količine imaju predznak signed char Možete spremiti vrijednosti u rasponu od -128 do 127. Vrijednosti su slične vrsti unsigned char može biti u rasponu od 0 do 255.
Tip podataka Vrijednost raspona Rozmir
char -128...+127 1 bajt
unsigned char 0...255 1 bajt
signed char -128...127 1 bajt

Kada radite sa simboličkim podacima, trag memorije ima tendenciju sužavanja u virusu pojedinačni znak, on je kriv za postavljanje od jednostruke noge. Niz simbola, poput reda, kada se vikorizira u izrazima leži na dnu stopala. Na primjer: 'F', '3', "Ivan", "235"

Cjelobrojni tip

Počast tipu int Memorija računala može zauzimati 2, 4 ili 8 bajta. To ovisi o kapacitetu procesora.
Za sve svrhe, simbole smatramo specifikatorima potpisan(Značajno) ne treba navoditi.
Specifikator nepotpisan(bez predznaka) omogućuje predstavljanje nepozitivnih brojeva.

Rasponi vrijednosti cijelih tipova

Tip podataka Vrijednost raspona Veličina (bajt)
int
potpisan međ
potpisan dug int
-2147483648 ... 2147483647 4
nepotpisani int
unsigned long int
0 ... 4294967295 4
kratki int
potpisan kratki međ
-32768 ... 32767 2
nepotpisani kratki međ 0... 65535 2
dugo dugo int \(-(2^{63}-1)...(2^{63}-1)\) 8
unsigned long
dugo int
\(0...(2^{64}-1)\) 8

Vrsta govora

Interni prikaz izgovorenog broja u memoriji računala podijeljen je na prikaz cijelog broja. Broj s pomičnim zarezom predstavlja u eksponencijalnom obliku. $$\pm mE\pm p$$ de m- bogomoljka (cijeli broj ili broj s desetom točkom), R- Red (cijeli broj). Kako bi se broj u eksponencijalnom obliku pretvorio u njegov izvorni izraz s fiksnom točkom, potrebno je pomnožiti bogomoljku s deset redom.

Rasponi značenja govornih vrsta

Tip podataka Vrijednost raspona Veličina (bajt)
plutati 3,4E-38 ... 3,4E+38 4
dvostruko 1.7E-308... 1.7E+308 8
duga dvostruka 3.4E-4932 ... 3.4E+4932 10

Dužina mantisija označava točnost broja, a dužina redoslijed njegovog raspona.
Podaci tipa float zauzimaju 4 bajta, uključujući 1 dvostruku znamenku za znak, 8 znamenki za prag i 23 za bogomoljku. Budući da će najveća znamenka bogomoljke uvijek biti jednaka 1, bit će spremljena.
Podaci dvostrukog tipa zauzimaju 8 bajtova, imaju redoslijed od -11 znamenki i redoslijed bogomoljke od ukupno -52 znamenke.
Dugi specifikator tipa prije tipa double označava da je vrijednosti dodijeljeno 10 bajtova.

Logički tip

Zminna tip bool možete prihvatiti još dvije vrijednosti pravi(istina) ili lažno(laž). Svaka vrijednost koja nije jednaka nuli tumači se kao istina, a kada se pretvori u cjelobrojni tip, interpretira se vrijednost koja je jednaka 1. Vrijednost laž predstavlja se u memoriji kao 0.

Tip void (prazno)

Besmisleno značenje je prazno.
Vrsta void je wikipedia za:
  • značaj funkcija tako da se vrijednosti ne mogu rotirati;
  • za umetanje praznog popisa argumenata funkcije;
  • kao osnovni tip za showmene;
  • Operacija ima sljedeće vrste.

Ošamućen od Zlih

Zminna- ovo je naziv odjeljka memorije u kojem se sprema značenje vrste pjesme.
Imam kusur Ja sam(identifikator) ​​i značaj.
Ja sam služe za pohranu do memorijskog područja, gdje se spremaju vrijednosti.
Ja sam(identifikator) ​​- ovo je skup slova, brojeva i znakova naglaska koji određuje naziv varijable, naziv funkcije ili ključnu riječ programa. Jezik C/C++ razlikuje velika i mala slova (to jest, Sum i sum će se tretirati kao dvije različite varijable).
de, tip– ključna riječ, početno korištena za memoriju (broj bajtova), pohranjivanje varijabilnih vrijednosti (kao programski objekt), (int – cijeli broj, float, double – govor, char – simbolički, bool – logički);
Ja sam- Jedinstveni identifikator promjene koji specificira simboličku adresu programskog objekta u EOM memoriji;
pokretač- Pochatkova vrijednost promjene, kao što može biti uključeno u opis.
Na primjer: Promjene iste vrste mogu se grupirati odvajajući ih s ",". Opis promjena drugačiji tip podijeljeno "; "
Sve u svemu, promjene u ruskom jeziku mogu se podijeliti u tri klase:
  1. lokalni - glas u sredini funkcija i onih dostupnih izvan njih;
  2. globalno - opisuje sve funkcije koje su dostupne s bilo kojeg mjesta u programu;
  3. Formalni parametri funkcije opisani su u popisu parametara funkcije.
stražnjica:

Oznake: S promjenama. char, int, unsigned, long, long long, float, double, long double, long float, leksički opseg. One zaprepaštene. Područje vidljivosti. Inicijalizacija promjena. Imena poznatih. Eksponencijalni oblik.

Zminni

Varijable se koriste za spremanje vrijednosti (sic!). Obrok karakterizira vrsta hrane. Završimo s imenom. Promjena može početi od fotelje ili slova, ali ne i od broja. Zminna može uključivati ​​simbole engleski alfabet, brojevi i znak stolice. Nije potrebno izbjegavati korištenje ključnih riječi (to su posebne riječi koje se koriste kao konstrukti, za identifikaciju tipova itd.)

auto dvostruko int strukturirati
pauza drugo dugo sklopka
Registar typedef char vanjski
povratak poništiti slučaj plutati
nepotpisan zadano za potpisan
unija čini ako veličina
nepostojan nastaviti nabrajanje kratak
dok u redu
I također niz drugih riječi specifičnih za ovu verziju prevoditelja, na primjer daleko, blizu, sitan, ogroman, asm, asm_ ta unutra.

Na primjer, ispravni identifikatori
a, _, _1_, Sarkasm, a_long_variable, aLongVariable, var19, defaultX, char_type
neistinito
1a, $vrijednost, a-duga vrijednost, kratko

Sí - registrirani jezik. Promjene s imenima a i A, ili end i END, ili perfectDark i PerfectDarK – postoje razne promjene.

Vrste promjena

Vrsta promjene znači

  • 1) Veličina memorije u bajtovima (koliko bajtova memorije računalo može vidjeti prilikom spremanja vrijednosti)
  • 2) Slanje promjena u memoriju (kao što će u dvostrukom prikazu biti isprekidani otkucaji u području memorije).
Sve glavne vrste. Podijelimo ih u dvije skupine - cijele brojeve i brojeve s pomičnim zarezom.

Ciljevi

  • char- Veličina 1 bajt. Započnite! Ovaj trag se mora zapamtiti.
  • kratak- Veličina 2 bajta
  • int- Veličina 4 bajta
  • dugo- Veličina 4 bajta
  • dugo dugo- Veličina 8 bajtova.
Ovdje se mora poštivati ​​trag. Veličina značajnih i beznačajnih vrijednosti jasno je ista kao veličina bajtova. Standard to ne ukazuje

char<= short <= int <= long <= long long

Prikazane vrijednosti tipičnije su za VC2012 kompajler na 32-bitnom stroju. Dakle, ako je vaš program pohranjen u rasponu veličina, nemojte se truditi saznati njegovu veličinu.

Sada odredimo najveći i najmanji broj koji možete uštedjeti na promjeni tipa kože. Brojevi mogu biti pozitivni ili negativni. Negativni brojevi koriste jedan bit za spremanje predznaka. Neki znakovi su potrebni (npr. spremamo veličinu staklenke, temperaturu, koordinatu itd.), ako nema potrebe za bilo kim drugim (volumen, veličina mase, dob ljudi itd.) . U tu svrhu koristi se modifikator tipa signed i unsigned. unsigned char - svih 8 bitova po broju, odjednom možete birati brojeve od 00000000 do 11111111 u dvostrukom prikazu, zatim od 0 do 255 signed char od -128 do 128. Sve promjene se temelje na Upoznat sam. Stoga su unos char i signed char ekvivalentni.

tab. 1 Veličina svih vrsta si.
Tip Veličina, bajt Minimalne vrijednosti Maksimalna vrijednost
unsigned char 1 0 255
signed char
(char)
1 -128 127
nepotpisani kratki 2 0 65535
potpisan kratak
(kratak)
2 -32768 32767
nepotpisani int
(nepotpisan)
4 0 4294967296
potpisan međ
(int)
4 -2147483648 2147483647
unsigned long 4 0 4294967296
potpisan dug
(dugo)
4 -2147483648 2147483647
unsigned dug dug 8 0 18446744073709551615
signed long long
(dugo dugo)
8 -9223372036854775808 9223372036854775807

veličina

Ovo ima operator koji vam omogućuje odabir veličine varijable u bajtovima. sizeof je promjenjiv, ili sizeof(promjenjiv) ili sizeof(tip). Ovo je isti operator, jer funkcija ne može dohvatiti informacije o veličini tipova kada se programi pokreću. Napišimo mali program za promjenu veličine svijeta.

#uključi #uključi int main() ( char c; short s; int i; long l; long long L; // Kliknite sizeof kao “funkciju” printf("sizeof(char) = %d\n", sizeof(c)); printf ("sizeof(short) = %d\n", sizeof(s)); printf("sizeof(int) = %d\n", sizeof(i)); printf("sizeof(long) = %d \ n", sizeof(l)); printf("sizeof(dugo dugo) = %d\n", sizeof(L)); c), printf("sizeof(short) = %d\n", sizeof s ) ; n", sizeof l); printf("sizeof(long long) = %d\n", sizeof L); _getch();

(Mislim da je jasno da se majke mogu promijeniti ako su valjane). Ovaj program je mogao biti napisan na jednostavniji način

#uključi #uključi int main() ( printf("sizeof(char) = %d\n", sizeof(char)); printf("sizeof(short) = %d\n", sizeof(short)); printf("sizeof( int) = %d\n", sizeof(int)); printf("sizeof(long) = %d\n", sizeof(long)); printf("sizeof(long long) = %d\n", sizeof(long long));//ne možete stvoriti klik sizeof kao operator za naziv tipa //sizeof int - popravak kompilacije _getch();

Tu istu vrstu možemo nazvati majčinom kilkom
kratko === kratko int
dugo === dugo int
dugo dugo === dugo dugo int
unsigned int === unsigned

Tipi s pomičnim zarezom

  • plutati- 4 bajta,
  • dugi plovak- 8 bajtova
  • dvostruko- 8 bajtova
  • duga dvostruka- 8 bajtova.
Vrijednosti za VC2012 također su naznačene ovdje, slijedeći standard veličine tipa float<= long float <= double <= long double все числа с плавающей точкой - со знаком.

Obnova poznatih

Ne pratimo promjene u promjenama. To znači da se stalno rastuće vrijednosti, recimo, zamjenjive s tipom int, definiraju kao "skinirane vrijednosti"

#uključi #uključi void main() ( unsigned a = 4294967295; int b = 2147483647; //Preimenovanje neoznačenog tipa printf("%u\n", a); a += 1; printf("%u", a); // Preimenovanje potpisanog tipa printf("%d\n", b); b += 1; printf("%d", b); getch(); )

Međutim, ponašanje kada se promjena promijeni naznačeno je samo za tip nepotpisan: Unsigned whole skin value Za druge tipove može biti, a vi trebate pratiti promjene, raditi ručno, revidirati argumente ili koristiti druge metode koje leže u kompajleru i teksturi arch procesora.

Postfix nije dodijeljen vrsti

Kada radite s brojevima, možete jasno označiti njihovu vrstu iza dodatnih slova, kao što su brojevi, na primjer

  • 11 – broj tipa int
  • 10u - bez potpisa
  • 22l ili 22L - duž
  • 3890ll ili 3890LL - dugi dugi (i također lL ili Ll)
  • 80.0f ili 80.f ili 80.0F - float (očito prisutnost desete točke u zapisu)
  • 3.0 – dvostruki tip broja
Eksponencijalni oblik također znači broj tipa double. #uključi #uključi int main() ( printf("sizeof(int) = %d\n", sizeof(10)); printf("sizeof(unigned) = %d\n", sizeof(10u)); printf("sizeof( long) = %d\n", sizeof(10l)); printf("sizeof(long long) = %d\n", sizeof(10ll)); printf("sizeof(float) = %d\n", sizeof(10.f));printf("sizeof(double) = %d\n", sizeof(10.)); printf("sizeof(double) = %d\n", sizeof(10e2)); ( );)

Uvredljivi kod, međutim, ne može se svesti na izvršenje, jer se implicitno pretvara u tip

Inta = 10u; dvostruko g = 3.f;

Šesnaesti i šesnaesti format

Kada radite s brojevima, možete koristiti heksadecimalne i težinske formate. Brojevi u heksadecimalnom brojevnom sustavu počinju s 0x, u sustavu ljestvica od nule. Očigledno, ako broj počinje od nule, onda nitko nije kriv što ima brojeve veće od 7:

#uključi #uključi void main() ( int x = 0xFF; int y = 077; printf("hex x = %x\n", x); printf("dec x = %d\n", x); printf("oct x = %o\n", x); printf("oct y = %o\n", y); printf("dec y = %d\n", y); y); dobiti();

Eksponencijalni oblik prikaza broja

Eksponencijalni oblik zadanog broja naziva se zadani broj u obliku M e ± p, gdje je M- brojevi bogomoljki, str- Deseti korak. U ovom slučaju, znak bogomoljke je jedan znak različit od nule ispred desete zareze.
Na primjer, 1,25 === 1,25e0, 123,5 === 1,235e2, 0,0002341 === 2,341e-4, itd.
Podannya 3.2435e7 je ekvivalentno 3.2435e+7
Postoji još jedan fenomen ("inženjering"), u kojem stupanj može biti višekratnik tri. Na primjer, 1,25 === 1,25e0, 123,5 === 123,5e0, 0,0002341 === 234,1e-6, 0,25873256 === 258,73256e-3, itd.

Ošamućen od Zlih

Svi glasači glasat će za prvi blok (blok je dio koda, okružen kovrčavim krakovima)

<возвращаемый тип> <имя функции> (<тип> <аргумент>[, <тип> <аргумент>]) (šok promjene sve je drugačiji)

Kada se oglušite, napišite njen tip i ime.

Int a; dvostruki parametar;

Možete glasati za više imena iste vrste, podijelivši imena na svako

Dugi dugi arg1, arg2, arg3;

Na primjer

#uključi #uključi int main() ( int a = 10; int b; while (a>0)( int z = a*a; b += z; ) )

Ovdje je glasno aі b u sredini funkcije glavni, To je odlično z u sredini tjelesnog ciklusa. Uvredljivi kod će uzrokovati neuspjeh kompilacije

Int main() ( int i; i = 10; int j; )

Dakle, tečajni tečaj košta nakon dodjele operatora. Ako se naprave bilo kakve promjene, one se mogu odmah pokrenuti.
int i = 0;
U kojem slučaju operater ne poštuje inicijalizaciju kada se izvrši promjena, tada se primjenjuje sljedeći kod

Int main() ( int i = 10; int j; )

Pochatkov vrijednost promjene

Važno je zapamtiti da se promjene u sustavu ne inicijaliziraju nulama, kao u mnogim drugim programskim programima. Nakon što je promjena zapanjena, zadržava "mrlju" - privremenu vrijednost koja je izgubljena iz memorijske sfere koja je bila viđena prije promjene. Ovo je izravno povezano s optimizacijom robotskih programa: budući da nema potrebe za inicijalizacijom, nema potrebe trošiti resurse na pisanje nula (poštovanje: inicijali globalnih promjena nazivaju se nulama, pa pročitajte u ovom članku).

#uključi #uključi int main() ( int i; printf("%d", i); getch(); )

Ako se prijavite za ovaj program na VC-u, u vrijeme izdavanja, odletite unaprijed
Neuspjeh provjere tijekom izvođenja #3 - Varijabla "i" se koristi bez inicijalizacije.
Ako pritisnete “Nastavi”, tada će program prikazati “Smittya”. Na mnogim drugim kompajlerima, neće biti kašnjenja u kompilaciji programa.

Područje vidljivosti promjene

Varijable mogu biti lokalne (smještene u sredini bilo koje funkcije) ili globalne. Globalna promjena vidljiva je svim funkcijama omogućenim za ovu datoteku. Lokalna promjena okružena je vlastitim područjem vidljivosti. Ako kažem da je promjena “označena na bilo kojem mjestu”, to znači na kojem mjestu je označena i može se vikorizirati. Na primjer, pogledajmo program koji ima globalnu promjenu

#uključi #uključi int global = 100; void foo() ( printf("foo: %d\n", globalno); ) void bar(int global) ( printf("traka: %d\n", globalno); ) int main() ( foo() traka (333); getch ();

Bit će prikazano
foo: 100
bar: 333
Ovdje postoji globalna promjena globalno vidljiv svim funkcijama. Ako argument funkcije prebriše globalnu vrijednost, tada se lokalna vrijednost 333 ispisuje kada se proslijedi argument 333.
Ostala osovina

#uključi #uključi int global = 100; int main() ( int global = 555; printf("%d\n", global); getch(); )

Program pokazuje 555. Također, kao iu prošlosti, lokalna promjena je “važna”. Zminna, oglušila u području vidljivosti pjevanja, ne vidi se njezina poza, npr.

#uključi #uključi int global = 100; int main() ( int x = 10; ( int y = 30; printf("%d", x); ) printf("%d", y); )

Ovaj kundak se neće sastavljati jer je promjenjiv g Nalazi se samo u sredini bloka.
Osovina je još uvijek stražnja, ako je promijenjena, zaglavljena u sredini bloka, preklapaju se jedna s drugom

#uključi #uključi int global = 100; int main() ( int x = 10; ( int x = 20; ( int x = 30; printf("%d\n", x); ) printf("%d\n", x); ) printf( "%d\n", x); getch();

Vivede program
30
20
10
Globalno značajni tragovi su jedinstveni. Često možete učiniti malo ovako. Pokušajmo se vjenčati, zašto? U jednostavnim projektima globalne promjene izgledaju sasvim normalno. Javi mi da imaš viška

  • 1) Razvili su ga mnogi ljudi i sastoji se od stotina tisuća redaka koda
  • 2) Radi s hrpom tokova

Prije svega, to je globalna promjena, jer je vidljiva svima i može se mijenjati bilo kojim dijelom programa. Promijenili ste globalnu vrijednost, želite je zapisati, a drugi dio programa već je prepisao drugu vrijednost u njoj (doista, postoji cijela klasa problema koji proizlaze iz okruženja bogatog toka). Drugim riječima, uz veliku veličinu projekta nije ga moguće pratiti, čak i ako stvara globalne promjene. U našim najšiljatijim zadnjicama jasno je kako se promjene mogu preklapati, a tako će biti iu velikom projektu.

Ludo je, ako globalne promjene pojednostavljuju program, ako se takve situacije ne događaju često i nisu kod vas doma, onda NEMOJTE STVARATI GLOBALNE PROMJENE!
Promjene se mogu napraviti ne samo cijele i s pomičnim zarezom. Ostale vrste kojima smo dalje bili izloženi su bez tretmana.

Vrsta celija (int)

Veličina tipa int nije određen standardom, ali je pohranjen u računalu i kompajleru.

Za 16-bitni procesor, 2 bajta se unose za vrijednost ovog tipa,

za 32-bitni - 4 bajta.

Specifikator kratak Prije unosa tipa, prevodilac ukazuje da broj treba unijeti u 2 bajta, bez obzira na kapacitet procesora.

Specifikator dugo znači da cijela vrijednost zauzima 4 bajta.

Dakle, na 16-bitnom računalu ekvivalenti int i short int,

a na 32-bitnom - int i long int.

Unutarnje manifestacije vrijednosti cjelobrojnog tipa - cijeli broj u dvostrukom kodu. Kada je specifikator odabran potpisan Najznačajniji bit broja tumači se kao predznak jedan (0 je pozitivan broj, 1 je negativan broj). Specifikator nepotpisan omogućuje predstavljanje samo pozitivnih brojeva, jer se najviša znamenka uzima kao dio koda broja. Da. Raspon vrijednosti tipa int pohranjuje se u specifikatorima. Rasponi vrijednosti za cijele tipove s različitim specifikacijama za IBM PC-mala računala prikazani su u tablici “Rasponi vrijednosti za jednostavne tipove podataka”.

Općenito, svi tipovi cjelobrojnih brojeva tretiraju se kao označeni, tako da se specifikator s predznakom može izostaviti.

Konstantama u programu dodjeljuje se različit tip u skladu s njihovim tipom. Ako iz nekog razloga program ne kontrolira, možete eksplicitno navesti traženi tip koristeći sufikse L, l (dugo) i U, u (bez predznaka). Na primjer, konstanta 32L je tipa long i zauzima 4 bajta. Možete koristiti sufikse L i U istovremeno, na primjer, 0x22UL ili 05Lu.

Bilješka. Tipovi short int, long int, signed int i unsigned int mogu se točno skratiti na short, long, signed i unsigned.

Vrsta znaka (char)

Veličina vrste znakova je broj bajtova dovoljan za smještaj bilo kojeg znaka u skupu znakova za određeno računalo, koji se naziva tip. U pravilu je to jedan bajt. Tip char, kao i drugi tipovi, može biti ili znak ili znak. Za nepredpisane vrijednosti možete spremiti vrijednosti u rasponu od -128 do 127. Ako koristite nepredpisani specifikator, vrijednosti mogu biti u rasponu od 0 do 255. To je dovoljno za spremanje bilo kojeg znaka iz 256- skup znakova ASC II. Vrijednosti tipa char također se pohranjuju u cijelim brojevima.



Vrsta znaka proširenja (wchar_t)

Tip wchar_t Svrhe za rad sa skupom znakova, za čije kodiranje 1 bajt nije dovoljan. Na primjer, Unicode. Veličina leži u provedbi; U pravilu odgovara tipu kratke hlače Konstante retka tipa wchar_t pišu se s prefiksom L, na primjer, L Vrata.

Booleov tip (bool)

Vrijednosti logičkog tipa mogu se uzeti izvan njihovog značenja praviі lažnoê rezervirane riječi. Interni oblik vrijednosti podnošenja je false – 0 (nula). Svaka druga vrijednost tumači se kao istinita. Kada se transformira u cijeli tip pravi Može imati vrijednost 1.

Tip s pomičnim zarezom (float, double i long double)

C++ standard definira tri tipa podataka za pohranu govornih vrijednosti: float, double i long double.

Tipovi podataka s pomičnim zarezom pohranjuju se u memoriju drugačije, manje cjelobrojno. Unutarnja manifestacija govornog broja sastoji se od dva dijela - bogomoljkaі u redu.

Na računalima veličine IBM PC, veličina tipa plutati zauzimaju 4 bajta, od kojih se unosi jedna dvoznamenka pod znakom Mantisija, 8 pražnjenja dobro ta 23 ispod bogomoljke. Mantisa je broj veći od 1,0 ili manji od 2,0. Budući da će najveća znamenka bogomoljke uvijek biti jednaka 1, bit će spremljena.

Za količine vrste dvostruko, koji zauzimaju 8 bajtova, 11 i 52 znamenke se isporučuju po narudžbi i mantisi. Dužina bogomoljke označava točnost broja, a dužina reda - njegov raspon. Kao što možete pročitati iz tablice na kraju zapisa, s obzirom na broj bajtova koji se mogu dostaviti pod vrijednostima float i long int, rasponi njihovih dopuštenih vrijednosti uvelike variraju putem internog obrasca za prijavu.

Specifikator dugo prije tipa im'yam dvostruko označava da je za ovu vrijednost uneseno 10 bajtova.

Konstanta s pomičnim zarezom tipičan je tip double. Možete eksplicitno odrediti vrstu konstante pomoću dodatnih sufiksa F, f (float) i L, l (dugo).

Na primjer, konstanta 2E+6L je tipa long double, a konstanta 1.82f je tipa float.

Kada pišete programe koji su univerzalni za različite platforme, ne možete brinuti o veličini tipa int. Da biste ga uklonili, trebate upotrijebiti operaciju sizeof, koja rezultira veličinom tipa u bajtovima.

Na primjer, za MS-DOS operativni sustav sizeof(int) će dati rezultat 2, a za Windows 98 ili OS/2 rezultat će biti 4.

U ANSI standardu rasponi vrijednosti za glavne tipove nisu specificirani; specificiran je samo odnos između njihovih veličina, na primjer:

sizeof(float) ≤ slzeof(double) ≤ sizeof(long double)
sizeof(char) ≤ slzeof(short) ≤ sizeof(int) ≤ sizeof(long)

Bilješka. Najmanje i najveće dopuštene vrijednosti za sve vrste navedene su u implementaciji i u datoteci zaglavlja (), karakteristike govornih vrsta - u kartoteci (), kao i u klasi predloška numeric_limits

tip void

Osim remonta, glavne vrste jezika uključuju tip void, odnosno besmisleno značenje koje je prazno. Koristi se za dodjeljivanje funkcija koje ne rotiraju vrijednosti, za umetanje praznog popisa argumenata funkcije kao osnovnog tipa za indikatore i u operaciji pretvaranja tipa.

Uvode se različiti tipovi cijelih i govornih tipova, koji se razlikuju u opsegu i točnosti prikaza podataka, kako bi se programu omogućila najučinkovitija analiza mogućnosti određene opreme, osc Ovisno o izboru tipa, proračun i učinkovitost memorije mora se osigurati. Ako je program optimiziran za bilo koju vrstu računala, možda neće biti prenosiv na druge platforme zbog jedinstvenosti depozita zbog specifičnih karakteristika tipova podataka.

Tip Vrijednost raspona Veličina (bajt)
bool istinito i lažno
signed char -128 … 127
unsigned char 0 … 255
potpisan kratki međ -32 768 … 32 767
nepotpisani kratki međ 0 … 65 535
potpisan dug int -2 147 483 648 … 2 147 483 647
unsigned long int 0 … 4 294 967 295
plutati 3.4e-38 … 3.4e+38
dvostruko 1.7e-308 … 1.7C+308
duga dvostruka 3.4e-4932 … 3.4e+4932

Struktura programa

Moj C++ program se sastoji od funkcija, opisiі direktive pretprocesora. Jedna od funkcija je majčina krivnja glavni. Program počinje s prvom naredbom ove funkcije. Najjednostavniji način definiranja funkcije je u sljedećem formatu:

Funkcija se u pravilu koristi za izračunavanje određene vrijednosti, pa se prije funkcije navodi njezin tip. Ispod su najvažnije informacije o funkcijama:

  • Ako je funkcija potrebna za rotiranje vrijednosti, naveden je tip void:
  • Tijelo funkcije je blok i, prema tome, leži u blizini figure luka;
  • funkcije se ne mogu spoznati njihovim umetanjima;
  • Kožni operator završit će točkom i kvržicom (rub presavijenog operatora).

Primjer programske strukture za funkcije main, fl i f2:

Program se može sastojati od nekoliko moduli(Izlazne datoteke).

Poštovanje za uvođenje/razvoj C++

Movi C++ nema nikakve posebne značajke ulaza/izlaza - zahtijeva dodatne funkcije, poput tipova objekata koji se nalaze u standardnim bibliotekama.

Postoje dva načina za istraživanje: funkcije, jezična izdanja, C++ objekti.

Glavne funkcije unosa/prikazivanja u C stilu:

int scanf (const char * format, ...) // Uvod
int printf(const char* format, ...) // simbol

Formatirani unosi i prikazi velikog broja vrijednosti u skladu su s formatom formata. Redoslijed formata je postavljanje znakova koji se, kada se prikažu, kopiraju u tok (na ekranu) ili kopiraju iz toka (s tipkovnice) u trenutku unosa, a mijenjaju se specifikacije koje počinju s znak %, kao kada se unese i prikaže zamjena. brinite o određenim količinama.

Primjer programa koji koristi ulazno/izlazne funkcije u stilu C:

#uključi
int main() (
int i;
printf("Unesite cijeli broj\n");
scanf("%d", &i);
printf("Unijeli ste broj %d, da!", i);
povratak 0;
}

Prvi red ovog programa je direktiva pretprocesora, nakon čega se datoteka zaglavlja umeće u tekst programa kako bi se opis funkcija programa smjestio u ulaz/izlaz (u kojem su odjeljku izrezani krakovi jezični element ). Sve direktive pretprocesora počinju znakom #.

Treći red je opis cijelog tipa varijable s imenima i.

Funkcija printf u četvrtom retku prikazuje zahtjev "Unesite cijeli broj" i pomiče se u novi red do niza koraka \n. Funkcija scanf unosi cijeli broj unesen s tipkovnice u varijablu i (znak & označava operaciju uklanjanja adrese), a sljedeći operator prikazuje redak na zaslonu za unos, zamjenjujući specifikaciju transformacije vrijednošću broj.

Program iz C++ biblioteke klasa:

#uključi
int main() (
int i;
cout<< "Введите целое число\n"; cin >> i;
cout<< "Вы ввели число " << i << ", спасибо!";
povratak 0;
}

Datoteka zaglavlja sadrži opis skupa klasa za obradu ulaza/izlaza. Ovaj ima standardne objekte protoka. cin za unos s tipkovnice cout za prikaz na ekranu, kao i operacija postavljanja u tok< < и чтения из потока >>.

Možda će vas uvrijediti oba načina organizacije unosa, ali njihovo miješanje u jednom programu nije preporučljivo.

Predmet:
  1. Cjelobrojni tipovi podataka:

short int, unsigned short int, int, unsigned int, long, unsigned long.

  1. Vrste podataka s lebdećim zarezom (slično vrstama govora):

float, double, long double.

  1. Vrsta podataka znakova:

char (signed char), unsigned char, wchar_t.

  1. Logički tip podataka:

bool.

  1. Pojačani tip podataka (uvodi u Visual C++):

nabrajanje.

2. Koje su osobitosti različitih vrsta podataka?

C++ ima osnovne tipove cjelobrojnih podataka: short int, unsigned short int, int, unsigned int, long (long int), unsigned long (unsigned long int).

Ovi tipovi podataka predstavljaju vrijednosti višekratnika cijelih brojeva. Na primjer:

2 -100 398

Tipovi podataka koji počinju nepredpisanim prefiksom mogu sadržavati samo pozitivne brojeve.

Podaci tipa short int, unsigned short int zauzimaju upola manje memorijskog prostora od podataka tipa int, unsigned int.

Podaci tipa long, unsigned long zauzimaju dvostruko više prostora u memoriji od podataka tipa int, unsigned int.

3. Kako program može opisati promjenu naziva cijelog tipa?

Predmet:
int x; // za sve namjere i svrhe

Kao rezultat toga, promijenit ću se x vidjet će se memorijski prostor od 4 bajta. Veličina memorije koja je vidljiva pod promjenama ovisi o karakteristikama računala, vrsti operativnog sustava i postavkama prevoditelja.

4. Kako mogu napisati broj 239 za cijeli broj ljudi?

U tu svrhu koristi se operator dodjele koji je označen simbolom =.

Verzija 1. Unijet ću broj promjene nakon što ga opišem.

int x; x = 239;

Presuda 2. Unos broja će se promijeniti prema satu i opisu (inicijalizacija klipa).

int x = 239;

5. Koje su značajke vrsta podataka iz plivačke kome?

Vrste podataka s pomičnim zarezom omogućuju vam da predstavite vrijednosti više realnih brojeva. Na primjer:

8.35 -990.399 239.0.

C++ ima iste osnovne plutajuće tipove podataka: float, double, long double.

Varijabla tipa double zauzima 2 puta više prostora u memoriji računala, dok varijabla tipa float zauzima manje mjesta.

Također, dugi dvostruki tip zauzima dvostruko više memorijskog prostora računala od dvostrukog tipa.

6. Kako možemo opisati promjenu koja dolazi s lebdećom komom?

Ispod je opis tipova float, double, long double:

plovak f; dvostruko d; dugi dvostruki ld;

7. Kako mogu zapisati numeričke vrijednosti s pomičnim zarezom?

Primjer unosa numeričkih podataka u tipove varijabli s pomičnim zarezom:

float f = -9928,45; // Pochatkova inicijalizacija dvostruko d; dugi dvostruki ld; d = 0,445332; // operator dodjele ld = 3892923898239.030903; // operator dodjele

8. Kako mogu pretvoriti float tip u int tip?

U tu svrhu se koristi operacija indukcije tipa. Za krakove morate navesti naziv vrste ispred koje se očekuje smanjenje.

lebdjeti a; int b; a = 8457; b = (int)a; // b = 8

Prilikom izvođenja različitih tipova operacija potrebno je koristiti granice koje se preklapaju s tipovima koji zauzimaju manje prostora u memoriji računala.

Na primjer, tip short int može predstavljati manji raspon brojeva, dok tipovi float i double mogu predstavljati manji raspon brojeva. Trenutačni popis će imati novu vrijednost tipa short int:

kratko int i; plovak f; f = 3990099,8; i = (int) f; // i = -7597 - preimenovano

9. Kako pretvoriti vrijednost iz tipa int u tip double?

Primjer dat od int do double:

int i; dvostruko d; i = 982; d = (dvostruko) i; // d = 982,0

10. Koje su značajke korištenja podataka tipa char (znakovnih podataka) u programu?

Podaci tipa char simboličke su vrijednosti koda unesenog s tipkovnice. Kod simbola je cijeli broj.

Na primjer, kod za simbol f ima istu vrijednost kao 102.

Fragment koda u kojem se izračunava kod za simbol:

int kod; char simbol; simbol = "f"; kod = (int) simbol; // kod = 102

Podaci tipa char su isti cijeli brojevi. Tip char zauzima 1 bajt iz memorije računala.

Odnos simbol-kod nalazi se u Windows tablici simbola. Svi znakovi s kodovima od 0 do 127 su znakovi BIOS-a koji su rezervirani. Oni uključuju uobičajene simbole, numeričke simbole i simbole latinične abecede. Ovi se znakovi ne mogu mijenjati.

Znakovi s kodovima od 128 do 255 su regionalni znakovi koji su povezani s određenim računom računala na kojem je instaliran operativni sustav Windows.

11. Koje su značajke tipa podataka bool (logički tip)?

Objekti tipa bool mogu imati do dvije vrijednosti:

istina - istina,

lažno – besmislica.

Ove se promjene intenzivno koriste za provjeru logičkih izraza. Numerička vrijednost true jednaka je 1. Numerička vrijednost false jednaka je 0.

Fragment koda koji procjenjuje numeričke vrijednosti true i false:

int rezultat; bool b; rezultat = (int) istina; // rezultat = 1 b = lažno; rezultat = (int) b; // rezultat = 0

Fragment koda koji pretvara tipove int i float u bool:

int i; plovak f; bool b; i = 6; b = (bool)i; // b = Istina f = 0,0; b = (bool) f; //b = Netočno

12. Kako odrediti veličinu memorije koju zauzima ova vrsta memorije?

Za što se koristi operacija sizeof().

Fragment koda koji pokazuje veličinu ovih vrsta podataka:

int d; d = sizeof(char); // d = 1 d = sizeof(unsigned int); // d = 4 d = sizeof(float); // d = 4 d = sizeof(double); // d = 8

13. Kako funkcionira inicijalizacija različitih tipova?

int d = 28; float z = (float) 2,85; char c = "k"; String ^s = "Zdravo!" ; dvostruko r = -8,559;

14. Kako izračunati najveću dopuštenu (minimalno dopuštenu) vrijednost promjenjive vrste pjesme?

Za određivanje maksimalne ili minimalne dopuštene vrijednosti tipa varijable u biblioteci .NET Framework, koristite ovlaštenja MaxValue i MinValue.

Primijenite određivanje graničnih vrijednosti različitih vrsta.

Za varijable tipa int:

// upišite int int i; dugo MaxInt; dugi MinInt; MaxInt = (long)i.MaxValue; // MaxInt = 2147483647 MinInt = (long)i.MinValue; // MinInt = -2147483648

Za tip short int:

// tip short int kratko int si; int MaxInt; int MinInt; MaxInt = (int)si.MaxValue; // MaxInt = 32767 MinInt = (int)si.MinValue; // MinInt = -32768

Za unsigned int tip:

// tip unsigned int nepotpisani int ui; unsigned int MaxInt; unsigned int MinInt; MaxInt = ui.MaxValue; // MaxInt = 4294967295 MinInt = ui.MinValue; // MinInt = 0

Za vrste plovaka:

// float tip plovak f; plovak MaxF; float MinF; MaxF = f. MaxValue; // MaxF = 3,402823E+38 MinF = f.MinVrijednost; // MinF = -3,402823E+38

Za varijable tipa double:

// tip dvostruko dvostruko d; dvostruko MaxD; dvostruki MinD; Max = d. MaxValue; // Max = 1,79769313486232E+308 Min = d. MinValue; // Min = -1,79769313486232E+308

Za vrste znakova:

// tip char char c; int MaxC; int MinC; Max = (int) c. MaxValue; // Max = 127 Min = (int) c.MinValue; // Min = -128

15. Koje su karakteristike tipa enum?

Enum tip je tip podataka. Dane su mnemoničke vrijednosti za više vrijednosti. Mnemotehničko značenje pjesme je mjesto i cijeli broj.

Butt tipa enum za označavanje mjeseci sudbine:

popis mjeseci (siječanj, veljača, ožujak, travanj, svibanj, lipanj, srpanj, kolovoz, rujan, listopad, studeni, prosinac) mn; mn = siječanj; // mn = 0 mn = ožujak; // mn = 2 mn = rujan; // mn = 8

U ovoj aplikaciji, promjena je opisana s imenima mn tipa enum months. Mnemotehničke vrijednosti za mjesece (siječanj, veljača, …) počinju s 0 (0, 1, 2, …). Mnemotehnička vrijednost siječanj odgovara vrijednosti 0, mnemotehnička vrijednost veljača odgovara vrijednosti 1 itd.

Također, uz pomoć tipa enum u tekstu programa, možete koristiti mnemoničke notacije za veću točnost izlaznog koda.

Možete to napisati ovako:

mn = (nabroji mjesece)2; // mn = ožujak mn = (nabroji mjesece)11; // mn = prosinac

16. Koje su osobitosti tipaponištiti u programima naC++ ?

Vrsta podataka void koristi se u sljedećim slučajevima:

  • Potrebno je opisati funkciju koja ne rotira istu vrijednost (izvanredni kundak);
  • Potrebno je opisati funkciju koja uklanja parametre (izvanredna guza).

kundak. Funkcija MyFun() nema parametara, rotira bilo koju vrijednost (rotira void tip) i dohvaća parametre.

javno : void MyFun(void ) { // Tijelo funkcije // ... povratak; // Rotirajte funkcije koje ne rotiraju vrijednosti } // kliknite funkcije iz programa ... MyFun(); ...

17. Kako možete omamiti zlu vrstu?poništiti u programu?

To nije moguće jer tip void nije povezan s vrijednostima.

Omamljivanje varijable tipa void provodi se prije izvođenja kompilacije sa sljedećim informacijama:

"Nezakonito korištenje tipa void"

18. Koje su osobitosti tipawchar_ t VVizualno C++ ?

Promjene tipa char (prethodne točke) koriste se za spremanje 8-bitnih ASCII znakova.

Tip wchar_t koristi se za spremanje znakova koji idu do velikih skupova znakova. Na primjer, kineski Abbet ima veliki broj znakova. 8 znamenki nije dovoljno za prikaz cijelog skupa kineskih znakova. Ako trebate plasirati svoj program na međunarodno tržište, trebali biste potpuno zamijeniti tip char s wchar_t.

kundak wchar_t tip wiki.

... wchar_t t; // za promjenu t vidljiva su 2 bajta memorije t = "s"; ...

Cijeli tip char zauzima 1 bajt memorije (8 bitova) i omogućuje vam izračunavanje broja 2^8 vrijednost = 256 u dvostrukom brojevnom sustavu. Tip char može imati i pozitivne i negativne vrijednosti. Raspon za promjenu vrijednosti je od -128 do 127.

uchar

Cijeli uchar tip također zauzima 1 bajt u memoriji, kao i char tip, ali, s druge strane, uchar vrijednosti su osim pozitivnih vrijednosti. Minimalna vrijednost je nula, maksimalna vrijednost je 255. Prvo slovo u u nazivu tipa uchar je skraćenica za riječ unsigned.

kratak

Cijeli kratki tip ima veličinu od 2 bajta (16 bita) i, očito, omogućuje vam da izrazite neosobnu vrijednost jednaku 2 u fazi 16: 2^16=65 536. Dakle, kratki tip je potpisan i može se koristiti i pozitivno i negativno i vrijednost, zatim raspon Vrijednost je između -32768 i 32767.

ukratko

Tip unsigned short je tip ushort, koji je također veličine 2 bajta. Minimalna vrijednost je 0, maksimalna vrijednost je 65535.

int

Cijeli tip int veličine je 4 bajta (32 bita). Minimalna vrijednost je 2147483648, maksimalna vrijednost je 2147483647.

uint

Tip uint bez predznaka zauzima 4 bajta u memoriji i omogućuje izražavanje cjelobrojnih vrijednosti od 0 do 4294967295.

dugo

Cijeli dugi tip veličine je 8 bajtova (64 bita). Minimalna vrijednost je 9223372036854775808, maksimalna vrijednost je 9223372036854775807.

ulong

Cijeli ulong tip također zauzima 8 bajtova i omogućuje vam spremanje vrijednosti od 0 do 18446744073709551615.

primijeniti:

char ch = 12;
kratki sh = - 5000;
int in = 2445777;

Neoznačeni fragmenti tipa ne koriste se za spremanje negativnih vrijednosti; pokušaj postavljanja negativnih vrijednosti može rezultirati nezadovoljavajućim rezultatima. Ova nevina skripta dovest će do beskrajne petlje:

Ispravno bi bilo ovako:

Proizlaziti:

Ch = -128 u_ch = 128
ch = -127 u_ch = 129
ch = -126 u_ch = 130
ch = -125 u_ch = 131
ch = -124 u_ch = 132
ch = -123 u_ch = 133
ch = -122 u_ch = 134
ch = -121 u_ch = 135
ch = -120 u_ch = 136
ch = -119 u_ch = 137
ch = -118 u_ch = 138
ch = -117 u_ch = 139
ch = -116 u_ch = 140
ch = -115 u_ch = 141
ch = -114 u_ch = 142
ch = -113 u_ch = 143
ch = -112 u_ch = 144
ch = -111 u_ch = 145
...