Toto je starší verze dokumentu!
→ Slide 1
→ Slide 2
Podívejme se nyní na tabulku všech vestavěných celočíselných datových typů v C++, všimněte si typu int, který již známe z minula.
| Datový typ | Rozsah | Velikost |
| signed char | -128 až 127 | 8 bitů |
| unsigned char | 0 až 255 | 8 bitů |
| short | –32 768 až 32 767 | 16 bitů |
| unsigned short | 0 až 65 535 | 16 bitů |
| int | –2 147 483 648 až 2 147 483 647 | 32 bitů |
| unsigned int | 0 až 4 294 967 295 | 32 bitů |
| long int | -231 - 231-1 | 32 bitů |
| unsigned long int | 0 - 231-1 | 32 bitů |
1)
→ Slide 3
| Datový typ | Rozsah | Přesnost |
| float | +-3.4 * 10−38 až +-3.4 * 1038 | 7 číslic |
| double | +-1.7 * 10−308 až +-1.7 * 10308 | 15 číslic |
| long double | +-1.7 * 10−308 až +-1.7 * 10308 | 15 číslic |
double d = 3.14;
float f = 3.14f;
→ Slide 4
| 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 |
↓ Slide 5
↓ Slide 6
#include <stdio.h>
int main(void) {
bool b = false;
bool vyraz = (15 > 5);
printf("%d\n", b);
printf("%d\n", vyraz);
return 0;
}
→ Slide 7
| type | význam |
| 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. |
| 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. |
| p | Ukazatel (pointer) |
| 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. |
| g, G | Racionální číslo s exponentem nebo bez něj (podle absolutní hodnoty čísla). Neobsahuje desetinnou tečku, pokud nemá desetinnou část. |
| c | Jeden znak. |
| s | |
2)
#include <stdio.h>
int main(void)
{
char *COPYRIGHT = "(C)";
int ROK = 2003;
printf("%i %u %o %x %X %f %e %G\n", -5, -5, 200, 200, 200, 10.0,
10.0, 10.0);
printf("%s %i\n", COPYRIGHT, ROK);
return 0;
}
/* Výstup:
-5 4294967291 310 c8 C8 10.000000 1.000000e+01 10
(C) 2003
*/
→ Slide 8
↓ Slide 9
/* 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 );
—>
/* 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 */