spse:pm1:datove-typy

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revize Předchozí verze
Následující verze
Předchozí verze
spse:pm1:datove-typy [2021/01/11 22:19] jendaspse:pm1:datove-typy [2024/07/07 16:48] (aktuální) – upraveno mimo DokuWiki 127.0.0.1
Řádek 1: Řádek 1:
 ~~NOCACHE~~ ~~NOCACHE~~
-~~REVEAL theme=dokuwiki&transition=convex&controls=1&show_progress_bar=1&build_all_lists=1&show_image_borders=0&horizontal_slide_level=2&enlarge_vertical_slide_headers=0&show_slide_details=1&open_in_new_window=1&size=1280x960~~+~~REVEAL theme=dokuwiki&transition=convex&controls=1&show_progress_bar=1&build_all_lists=1&show_image_borders=0&horizontal_slide_level=2&enlarge_vertical_slide_headers=0&show_slide_details=1&open_in_new_window=1&size=1480x960~~
  
 ====== Datové typy ====== ====== Datové typy ======
Řádek 26: Řádek 26:
 |long double|+-1.7 * 10<sup>−308</sup> až +-1.7 * 10<sup>308</sup>|15 číslic| |long double|+-1.7 * 10<sup>−308</sup> až +-1.7 * 10<sup>308</sup>|15 číslic|
  
-<WRAP center round important 80%>+<WRAP center round important 100%>
   * 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á, nicméně když budete programovat např. finanční systém, mohou se objevit problémy.   * 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á, nicméně když budete programovat např. finanční systém, mohou se objevit problémy.
 </WRAP> </WRAP>
Řádek 32: Řádek 32:
 <code> <code>
 double d = 3.14; double d = 3.14;
-float f = 3.14f;+float f = 3.14;
 </code> </code>
 </fragment-block> </fragment-block>
Řádek 40: Řádek 40:
  
 |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ů|"široký" znak| 
 |bool|true nebo false (1 nebo 0)|8 bitů|logická hodnota| |bool|true nebo false (1 nebo 0)|8 bitů|logická hodnota|
  
Řádek 75: Řádek 74:
 ===== Výstupní konverze ===== ===== Výstupní konverze =====
  
- +^typ^význam^ 
-^type^význam^ +|d, i|Celé číslo se znaménkem (Zde není mezi d a i rozdíl.|
-|d, i|Celé číslo se znaménkem (Zde není mezi d a i rozdíl. Rozdíl viz scanf() níže).|+
 |u|Celé číslo bez znaménka.| |u|Celé číslo bez znaménka.|
 |o|Číslo v osmičkové soustavě.| |o|Číslo v osmičkové soustavě.|
-|x, X|Číslo v šestnáctkové soustavě. Písmena ABCDEF se budou tisknout jako malá při použití malého x, nebo velká při použití velkého X.+|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.|
-|p|Ukazatel (pointer)|+
 |f|Racionální číslo (float, double) bez exponentu.| |f|Racionální číslo (float, double) bez exponentu.|
-|e, E|Racionální číslo s exponentem, implicitně jedna pozice před desetinnou tečkou a šest za ní. Exponent uvozuje malé nebo velké E.| +|e, E|Racionální číslo s exponentem, implicitně pozice před des. tečkou a za ní. Exponent uvozuje malé nebo velké E.| 
-|g, G|Racionální číslo s exponentem nebo bez něj (podle absolutní hodnoty čísla). Neobsahuje desetinnou tečku, pokud nemá desetinnou část.|+|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.| |c|Jeden znak.|
-|s|Řetězec.+|s|Řetězec.
 +((https://www.sallyx.org/sally/c/c07.php)) 
 +---->
  
 +<WRAP center round tip 100%>
 +Co se děje v následující ukázce?
 +</WRAP>
  
 <fragment-block> <fragment-block>
Řádek 104: Řádek 106:
     return 0;     return 0;
 } }
 +/* Výstup:
 +-5 4294967291 310 c8 C8 10.000000 1.000000e+01 10
 +(C) 2003
 +*/
 +
 </code> </code>
 </fragment-block> </fragment-block>
  
 +<----
 +
 +====== Shrnutí ======
 +---->
 +<code c>
 +  /* Zakladni pouziti - cteni ze vstupu
 +   */   
 +  printf ( "Cele cislo:\n" );
 +  scanf  ( "%d", &a ); /* pozor, & a */
 +  printf ( "a = %d\n", a );
 +  
 +  printf ( "Desetinne cislo (double):\n" );
 +  scanf  ( "%lf", &b ); /* pozor, & b, pozor %lf */
 +  printf ( "b = %f\n", b ); /* zde %f, ne lf */
 +
 +  printf ( "Desetinne cislo (float):\n" );
 +  scanf  ( "%f", &c ); /* pozor, & c, pozor %f */
 +  printf ( "c = %f\n", c ); /* zde %f */
 +
 +  printf ( "Znak (char), ne whitespace:\n" );
 +  scanf  ( "%c", &d ); /* pozor, & d */
 +  printf ( "d = %c\n", d ); 
 +  /* Proc nelze znak zadat?
 +   */
 +
 +  printf ( "Retezec, max 19 znaku:\n" );
 +  scanf ( "%s", str ); /* pozor, zde ne & */
 +  printf ( "str = %s\n", str );
 +
 +</code>
 +<----
 +---->
 +<code c>
 +  /* Dalsi formaty
 +   */
 +   
 +  printf ( "Unsigned int:\n" );
 +  scanf ( "%u", &u );
 +  printf ( "u = %d\n", u );
 +   
 +  printf ( "Short int:\n" ); 
 +  scanf ( "%hd", &s ); /* zde %h */
 +  printf ( "s = %d\n", s ); /* zde %d */
 +
 +  printf ( "Hex: \n" );
 +  scanf ( "%x", &u ); /* cteme hex */
 +  printf ( "u = %u\n", u ); /* zobrazime jako dec, %u = unsigned int */
 +  
 +  printf ( "Oct: \n" );
 +  scanf ( "%o", &u ); /* cteme oct */
 +  printf ( "u = %u\n", u ); /* zobrazime jako dec */
 +</code>
 +<----
  
  
  • spse/pm1/datove-typy.1610403543.txt.gz
  • Poslední úprava: 2024/07/07 16:48
  • (upraveno mimo DokuWiki)