Rozdíly
Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
| Následující verze | Předchozí verze | ||
| spse:pm1:datove-typy [2021/01/11 21:43] – vytvořeno jenda | spse:pm1:datove-typy [2024/07/07 16:48] (aktuální) – upraveno mimo DokuWiki 127.0.0.1 | ||
|---|---|---|---|
| Řádek 1: | Řádek 1: | ||
| + | ~~NOCACHE~~ | ||
| + | ~~REVEAL theme=dokuwiki& | ||
| + | |||
| ====== Datové typy ====== | ====== Datové typy ====== | ||
| Řádek 15: | Řádek 18: | ||
| |unsigned long int|0 - 2< | |unsigned long int|0 - 2< | ||
| ((https:// | ((https:// | ||
| - | |||
| - | |||
| - | ==== Výstupní konverze ==== | ||
| - | |||
| - | <code c> | ||
| - | |||
| - | </ | ||
| - | |||
| ===== Desetinná čísla ===== | ===== Desetinná čísla ===== | ||
| Řádek 31: | Řádek 26: | ||
| |long double|+-1.7 * 10< | |long double|+-1.7 * 10< | ||
| - | <WRAP center round important | + | <WRAP center round important |
| - | Pozor, vzhledem k tomu, že desetinná čísla jsou v počítači uložena ve dvojkové soustavě, dochází k určité ztrátě přesnosti. Odchylka je sice téměř zanedbatelná, | + | |
| </ | </ | ||
| + | < | ||
| < | < | ||
| double d = 3.14; | double d = 3.14; | ||
| - | float f = 3.14f; | + | float f = 3.14; |
| </ | </ | ||
| + | </ | ||
| + | |||
| ===== Další vestavěné datové typy ===== | ===== Další vestavěné datové typy ===== | ||
| |char|U+00 až U+ff (0 až 255 nebo -128 až 127)|8 bitů|znak| | |char|U+00 až U+ff (0 až 255 nebo -128 až 127)|8 bitů|znak| | ||
| - | |wchar_t|U+0000 až U+ffff (0 až 65 535)|16 bitů|" | ||
| |bool|true nebo false (1 nebo 0)|8 bitů|logická hodnota| | |bool|true nebo false (1 nebo 0)|8 bitů|logická hodnota| | ||
| Řádek 49: | Řádek 45: | ||
| ==== char ==== | ==== char ==== | ||
| * Typ char (character) nám reprezentuje jeden znak. Na rozdíl od typu string, který reprezentoval celý řetězec hodnot typu char, píšeme znaky v C++ do jednoduchých apostrofů: | * Typ char (character) nám reprezentuje jeden znak. Na rozdíl od typu string, který reprezentoval celý řetězec hodnot typu char, píšeme znaky v C++ do jednoduchých apostrofů: | ||
| + | < | ||
| + | |||
| <code c> | <code c> | ||
| char c = ' | char c = ' | ||
| </ | </ | ||
| + | </ | ||
| ==== bool ==== | ==== bool ==== | ||
| * Typ bool nabývá dvou hodnot: true (pravda) a false (nepravda). Budeme ho používat zejména tehdy, až se dostaneme k podmínkám. Do proměnné typu bool lze uložit jak přímo hodnotu true/false, tak i výsledek logického výrazu nebo celé číslo (0 jako false a cokoli jiného jako true). | * Typ bool nabývá dvou hodnot: true (pravda) a false (nepravda). Budeme ho používat zejména tehdy, až se dostaneme k podmínkám. Do proměnné typu bool lze uložit jak přímo hodnotu true/false, tak i výsledek logického výrazu nebo celé číslo (0 jako false a cokoli jiného jako true). | ||
| + | < | ||
| <code c> | <code c> | ||
| Řádek 69: | Řádek 69: | ||
| </ | </ | ||
| + | </ | ||
| + | |||
| + | |||
| + | ===== Výstupní konverze ===== | ||
| + | |||
| + | ^typ^význam^ | ||
| + | |d, i|Celé číslo se znaménkem (Zde není mezi d a i rozdíl.| | ||
| + | |u|Celé číslo bez znaménka.| | ||
| + | |o|Číslo v osmičkové soustavě.| | ||
| + | |x, X|Číslo v šestnáctkové soustavě. Písmena ABCDEF se budou malá při použití malého x, nebo velká při použití velkého X.| | ||
| + | |f|Racionální číslo (float, double) bez exponentu.| | ||
| + | |e, E|Racionální číslo s exponentem, implicitně 1 pozice před des. tečkou a 6 za ní. Exponent uvozuje malé nebo velké E.| | ||
| + | |g, G|Racionální číslo s exponentem nebo bez něj (podle absolutní hodnoty čísla). Neobsahuje des. tečku, pokud nemá des. část.| | ||
| + | |c|Jeden znak.| | ||
| + | |s|Řetězec.| | ||
| + | ((https:// | ||
| + | ----> | ||
| + | |||
| + | <WRAP center round tip 100%> | ||
| + | Co se děje v následující ukázce? | ||
| + | </ | ||
| + | |||
| + | < | ||
| + | <code c> | ||
| + | |||
| + | #include < | ||
| + | |||
| + | int main(void) | ||
| + | { | ||
| + | char *COPYRIGHT = " | ||
| + | int ROK = 2003; | ||
| + | |||
| + | printf(" | ||
| + | 10.0, 10.0); | ||
| + | printf(" | ||
| + | return 0; | ||
| + | } | ||
| + | /* Výstup: | ||
| + | -5 4294967291 310 c8 C8 10.000000 1.000000e+01 10 | ||
| + | (C) 2003 | ||
| + | */ | ||
| + | |||
| + | </ | ||
| + | </ | ||
| + | |||
| + | <---- | ||
| + | |||
| + | ====== Shrnutí ====== | ||
| + | ----> | ||
| + | <code c> | ||
| + | /* Zakladni pouziti - cteni ze vstupu | ||
| + | | ||
| + | printf ( "Cele cislo: | ||
| + | scanf ( " | ||
| + | printf ( "a = %d\n", a ); | ||
| + | | ||
| + | printf ( " | ||
| + | scanf ( " | ||
| + | printf ( "b = %f\n", b ); /* zde %f, ne lf */ | ||
| + | |||
| + | printf ( " | ||
| + | scanf ( " | ||
| + | printf ( "c = %f\n", c ); /* zde %f */ | ||
| + | |||
| + | printf ( "Znak (char), ne whitespace: | ||
| + | scanf ( " | ||
| + | printf ( "d = %c\n", d ); | ||
| + | /* Proc nelze znak zadat? | ||
| + | */ | ||
| + | |||
| + | printf ( " | ||
| + | scanf ( " | ||
| + | printf ( "str = %s\n", str ); | ||
| + | |||
| + | </ | ||
| + | <---- | ||
| + | ----> | ||
| + | <code c> | ||
| + | /* Dalsi formaty | ||
| + | */ | ||
| + | |||
| + | printf ( " | ||
| + | scanf ( " | ||
| + | printf ( "u = %d\n", u ); | ||
| + | |||
| + | printf ( "Short int: | ||
| + | scanf ( " | ||
| + | printf ( "s = %d\n", s ); /* zde %d */ | ||
| + | |||
| + | printf ( "Hex: \n" ); | ||
| + | scanf ( " | ||
| + | printf ( "u = %u\n", u ); /* zobrazime jako dec, %u = unsigned int */ | ||
| + | | ||
| + | printf ( "Oct: \n" ); | ||
| + | scanf ( " | ||
| + | printf ( "u = %u\n", u ); /* zobrazime jako dec */ | ||
| + | </ | ||
| + | <---- | ||