Int je celé číslo ako 47 bez desatinnej čiarky. Nemôžete mať 4,5 detí alebo slučku 32,9-krát. Ak používate plavák, môžete mať 25,76 dolárov. Takže pri vytváraní programu sa musíte rozhodnúť, ktorý typ použijete.
To robia niektoré skriptovacie jazyky? Pretože je to neefektívne, plaváky zaberajú viac pamäte a sú zvyčajne pomalšie ako ints. Tiež nemôžete ľahko porovnávať dva plaváky, aby ste zistili, či sú rovnaké ako vy s ints.
Aby ste mohli manipulovať s číslami, musíte ich uložiť do pamäte. Pretože hodnotu je možné ľahko zmeniť, nazýva sa premenná.
prekladač ktorý číta váš program a prevádza ho na strojový kód, musí vedieť, aký je to typ, t. j. či ide o int alebo float, takže predtým, ako program použije premennú, musíte deklarovať ono.
Všimnite si, že premenná Counter je nastavená na 0. Toto je voliteľná inicializácia. Inicializácia premenných je veľmi dobrým zvykom. Ak neinicializujete a potom ich použijete v kóde bez toho, aby ste nastavili počiatočnú hodnotu, premenná sa začne náhodnou hodnotou, ktorá môže „zlomiť“ váš kód. Hodnota bude čokoľvek, čo bolo v pamäti pri načítaní programu.
Aký je najväčší počet, aký môže int uložiť?. Závisí to od typu CPU ale všeobecne sa akceptuje ako 32 bitov. Pretože dokáže udržať takmer toľko negatívnych hodnôt ako pozitívnych, rozsah hodnôt je +/- 2-32 až 232 alebo -2147,483,648 na +2,147,483,647.
Toto je pre podpísanú int, ale existuje aj nepodpísaný int, ktoré má nulovú alebo kladnú hodnotu. Má rozsah 0 až 4 294 967 295. Len si pamätaj - nepodpísaní hostia nemusia pred sebou znamienko (ako + alebo -1), pretože sú vždy kladní alebo 0.
Existuje kratší typ int, ktorý sa náhodne nazýva krátky int, ktorý používa 16 bitov (2 bajty). Toto číslo obsahuje čísla v rozmedzí od -32768 do +32767. Ak používate veľké množstvo ints, môžete ušetriť pamäť pomocou krátkych ints. Nebude to rýchlejšie, napriek tomu, že má polovičnú veľkosť. 32-bitové CPU získavajú hodnoty z pamäte v blokoch po 4 bajtoch súčasne. Tj. 32 bitov (odtiaľ názov 32 bit CPU!). Vyvolávanie 16 bitov teda stále vyžaduje 32 bitové načítanie.
Zavolá sa dlhšia 64 bitov dlho dlho v C. Niektoré kompilátory C ++, zatiaľ čo nepodporujú tento typ, priamo používajú alternatívny názov - napr. Borland aj Microsoft používajú _int64. Má rozsah -9223372036854775807 až 9223372036854775807 (podpísaný) a 0 až 18446744073709551615 (nepodpísaný).
Pokiaľ neuskutočňujete vedecké programovanie s veľmi veľkými alebo malými číslami, na zvýšenie presnosti použijete iba štvorhra. Plaváky sú dobré pre 6 číslic presnosti, ale štvorhra ponúka 15.
Zoberme si číslo 567,8976523. Je to platná hodnota float. Ale ak ho vytlačíme pomocou tohto kódu nižšie, môžete vidieť nedostatok presnosti. Číslo má 10 číslic, ale ukladá sa vo float premennej s presnosťou iba na šesť číslic.
vidieť O vstupe a výstupe podrobnosti o tom, ako funguje cout a ako používať presnosť. Tento príklad nastavuje presnosť výstupu na 8 číslic. Bohužiaľ, plaváky môžu pojať iba 6 a niektorí kompilátori vydajú varovanie pred konverziou dvojitého na plávajúce. Pri spustení sa vytlačí 567.89764
Ak zmeníte presnosť na 15, vytlačí sa ako 567,897644042969. Docela rozdiel! Teraz posuňte desatinnú čiarku o dve doľava, takže hodnota je 5,678976523 a znova spustite program. Tentoraz vydá 5,67897653579712. Je to presnejšie, ale stále odlišné.
Ak zmeníte typ hodnoty na dvojnásobok a presnosť na 10, vytlačí sa hodnota presne podľa definície. Vo všeobecnosti platí, že plaváky sa hodia pre malé, nie celé čísla, ale s viac ako 6 číslicami musíte použiť štvorhra.
Písanie počítačového softvéru by nebolo užitočné, ak by ste nemohli robiť sčítanie, odčítanie atď. Tu je príklad 2.
Okrem toho môžete robiť aj odčítanie, násobenie a delenie. Stačí použiť + na sčítanie, - na odčítanie, * na násobenie a / na delenie.
Pri plavákoch nemáte žiadnu kontrolu nad tým, koľko desatinných miest sa zobrazuje, pokiaľ nenastavíte presnosť, ako je uvedené vyššie.
Teraz je možné nastaviť šírku, zarovnanie, počet desatinných miest a znakov cout objekt a iomanip zahŕňajú funkcie súborov.
Tisíce oddeľovačov sú trochu komplikovanejšie. Sú nastavené z miestneho počítača. Miestne nastavenie obsahuje informácie relevantné pre vašu krajinu - napríklad symboly mien a oddeľovače desatinných miest a tisíce. Vo Veľkej Británii a USA používa číslo 100,98 desatinnú čiarku. ako desatinná čiarka, zatiaľ čo v niektorých európskych krajinách je to čiarka, takže 5,70 EUR znamená cenu 5 EUR a 70 centov.
vytvorí objekt mpunct čo je odkaz na a moneypunct šablóna triedy. Nájdete tu informácie o určenom miestnom nastavení - v našom prípade thousands_sep () metóda vráti znak použitý pre oddeľovač tisícov.
Poznámka Zdá sa, že medzi rôznymi kompilátormi existujú rozdiely, ako cout.imbue chová. V rámci Visual C ++ 2005 Express Edition to zahŕňalo oddeľovače. Ale rovnaký kód s Microsoft Visual C ++ 6.0 to neurobil!
Ak používate niektorý z týchto dvoch režimov formátovania prostredníctvom cout.setf potom presnosť () nastavuje počet desatinných miest za desatinnou čiarkou (nie celkový počet číslic), ale stratíte formátovanie v tisícoch. Tiež koncové nuly (ako to umožnil program ios_base:: showpoint ) sa automaticky povolia bez potreby showpoint.
Očakávali by ste niečo ako hodnota 11,0909090909. Hodnota je v skutočnosti 11. Prečo je toto? pretože vyjadrenie na pravej strane (známy ako rvalue) je celé číslo. Používa teda celé číslo aritmetiky, ktoré zahodí zlomkovú časť a priradí 11 až f. Zmena na
V C neexistuje taký typ ako bool. Výrazy v C boli založené na tom, že nula je nepravdivá alebo nenulová. V C ++ typ bool môžu brať hodnoty pravdivý alebo nepravdivý. Tieto hodnoty sú stále ekvivalentné 0 a 1. Niekde v kompilátore bude mať
Alebo to tak funguje! Dva nižšie uvedené riadky sú platné bez obsadenia, takže v zákulisí sú boolovky implicitne konvertované na ints a môžu sa dokonca zvyšovať alebo znižovať, aj keď je to veľmi zlá prax.
If bude stále robiť, keď je zlá premenná nenulová, ale je to zlý kód a malo by sa jej vyhnúť. Dobrou praxou je používať ich tak, ako sú určené. ak (! v) je platný C ++, ale uprednostňujem explicitnejšie ak (v! = 0). To je však záležitosť vkusu, nie a must-do smernice.
je lepšie, keď kompilátor zachytí chyby v čase kompilácie ako používateľ v runtime prostredí