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 | |
#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;
}