Vadnica za C ++ o ravnanju s plovci in vložki

Int je celo število kot 47 brez decimalne vejice. Ne morete imeti 4,5 dojenčka ali zanke 32,9-krat. Če uporabljate plovec, lahko dobite 25,76 dolarja. Ko ustvarite svoj program, se morate odločiti, katero vrsto uporabiti.

To počnejo nekateri skriptni jeziki? Ker je neučinkovit, plavajo zasedejo več pomnilnika in so na splošno počasnejši od intov. Prav tako ne morete enostavno primerjati dveh plovcev, da bi videli, ali sta enaka kot vi z int.

Če želite manipulirati s številkami, jih morate shraniti v pomnilnik. Ker se vrednost zlahka spremeni, se imenuje spremenljivka.

The prevajalnik ki bere vaš program in ga pretvori v strojno kodo, mora vedeti, kakšen tip je, tj. ali je int ali float, zato preden vaš program uporablja spremenljivko, morate izjaviti to.

Opazili boste, da je spremenljivka Števec nastavljena na 0. To je neobvezna inicializacija. Inicializacija spremenljivk je zelo dobra praksa. Če ne inicializirate in jih nato uporabite v kodi, ne da bi nastavili začetno vrednost, se bo spremenljivka začela z naključno vrednostjo, ki bi lahko vašo kodo 'zlomila'. Vrednost bo tista, kar je bilo v spominu, ko se je program naložil.

instagram viewer

Katera je največja številka, ki jo lahko shrani int?. No, odvisno je od vrste CPU vendar je splošno sprejeto kot 32 bitov. Ker lahko vsebuje skoraj toliko negativnih vrednosti kot pozitivnih, je razpon vrednosti +/- 2-32 do 232 ali -2,147,483,648 do +2,147,483,647.

To je za podpisan int, obstaja pa tudi nepodpisan int, ki drži nič ali pozitivno. Ima razpon od 0 do 4.294.967.295. Le pomni - nenapisani vnosi ne potrebujejo pred njimi znaka (na primer + ali -1), ker so vedno pozitivni ali 0.

Obstaja krajši int tip, naključno imenovan kratek int, ki uporablja 16 bitov (2 bajta). Ta ima številke v razponu od -32768 do +32767. Če uporabljate veliko število int, lahko s shranjevanjem kratkih vstavkov shranite spomin. Hitreje ne bo, kljub temu da je za polovico manjši. 32 bitni procesorji hkrati pridobivajo vrednosti iz pomnilnika v blokih po 4 bajtov. I.e. 32 bitov (Od tod tudi ime - 32 bitni CPU!). Torej za pridobivanje 16 bitov še vedno potrebujete 32-bitni prenos.

Na voljo je daljši 64-bitni klic dolgo dolgo v C. Nekateri prevajalniki C ++, čeprav ne podpirajo te vrste, neposredno uporabljajo nadomestno ime - npr. tako Borland kot Microsoft uporabljata _int64. Ta ima razpon od -9223372036854775807 do 9223372036854775807 (podpisan) in od 0 do 18446744073709551615 (brez podpisa).

Če znanstvenega programiranja ne izvajate z zelo velikimi ali majhnimi številkami, boste dvojnike uporabljali le za večjo natančnost. Plovec je dober za 6 mest natančnosti, vendar pa dvojice ponujajo 15.

Razmislite o številki 567.8976523. To je veljavna float vrednost. Toda če jo natisnemo s to kodo spodaj, lahko opazimo pomanjkanje natančnosti. Številka ima 10 števk, vendar je shranjena v spremenljivi spremenljivki z le šestimi natančnostmi.

Glej O vnosu in izhodu za podrobnosti o tem, kako deluje cout in kako uporabljati natančnost. Ta primer določa natančnost izhoda na 8 mest. Na žalost lahko floati vsebujejo le 6, nekateri prevajalniki pa bodo opozorili o pretvorbi dvojnika v float. Ko teče, se to izpiše 567.89764

Če spremenite natančnost na 15, bo natisnjena kot 567.897644042969. Precej razlike! Sedaj premaknite decimalno vejico v levo, tako da je vrednost 5,68976523, in zaženite program. Tokrat oddaja 5.67897653579712. To je bolj natančno, vendar še vedno drugače.

Če spremenite vrsto vrednosti v dvojno in natančnost na 10, bo vrednost natisnila točno tako, kot je definirana. Praviloma so plovci priročni za majhne, ​​neštevilčne številke, vendar z več kot 6 števili morate uporabiti dvojnike.

Pisanje računalniške programske opreme ne bi bilo veliko koristno, če ne bi mogli narediti seštevanja, odštevanja itd. Tu je primer 2.

Poleg seštevanja lahko izvedete odštevanje, množenje in deljenje. Samo uporabite + za seštevanje, - za odštevanje, * za množenje in / za delitev.

S plovci nimate nadzora nad tem, koliko decimalnih točk je prikazano, razen če nastavite natančnost, kot je prikazano prej.

Zdaj lahko širino, poravnavo, število decimalnih mest in znakov nastavite s cout predmet in iomanip vključujejo funkcije datotek.

Na tisoče ločniki so nekoliko bolj zapleteni. Nastavijo se iz krajevnega računalnika. Lokalni lokal vsebuje podatke, ki so pomembni za vašo državo, na primer simbole valute in decimalno vejico ter tisoče ločil. V Veliki Britaniji in ZDA številka 100,98 uporablja decimalno vejico. kot decimalna pika, medtem ko je v nekaterih evropskih državah vejica, torej 5,70 evra pomeni ceno 5 evrov in 70 centov.

ustvari predmet mpunkt kar je sklicevanje na a denarna točka predloga razreda. Ta ima podatke o določenem lokalu - v našem primeru the tisoč_sep () metoda vrne znak, uporabljen za tisoče ločevalnik.

Opomba Zdi se, da obstajajo razlike med različnimi prevajalniki glede tega, kako cout.imbue obnaša. V različici Visual C ++ 2005 Express Edition so bili vključeni ločilniki. Toda iste kode z Microsoft Visual C ++ 6.0 ni!

Če uporabljate katerega koli od teh dveh načinov oblikovanja prek cout.setf torej natančnost () nastavi število decimalnih mest za decimalno vejico (ne skupno število števk), vendar izgubite tisoče obliko. Tudi zadnje ničle (kot je omogočil ios_base:: showpoint ) postanejo samodejno omogočene brez potrebe razstavna točka.

Pričakovali bi nekaj, kot je vrednost 11.0909090909. V resnici je vrednost 11. Zakaj to? zaradi izraz na desni strani (znano kot an vrednoti) je celo število / celo število. Tako se uporablja cela aritmetika, ki vrže delni del in dodeli 11 do f. Spreminjanje v

V C ni take vrste kot a bool. Izrazi v C so temeljili na tem, da je nič neresnična ali ne-nič resnična. V C ++ vrsta bool lahko sprejme vrednosti prav ali lažno. Te vrednosti so še vedno enakovredne 0 in 1. Nekje v prevajalniku bo imel a

Ali vsaj tako deluje! Dve vrstici spodaj sta veljavna brez uvajanja, zato se v ozadju impulzi implicitno pretvorijo v inte in jih je mogoče celo povečati ali zmanjšati, čeprav je to zelo slaba praksa.

Če bo še vedno naredil vrednost if, ker je slaba spremenljivka enaka nič, je pa slaba koda in se ji je treba izogibati. Dobra praksa je, da jih uporabljate tako, kot so predvideni. če (! v) je veljaven C ++, vendar imam raje bolj nazorno če (v! = 0). To pa je stvar okusa, ne a moram narediti direktiva.

je bolje, da prevajalnik lovi napake v času prevajanja kot uporabnik med izvajanjem

instagram story viewer