Liczby bez znaku
unsigned short int, unsigned short
2-bajtowa (16 bitów) liczba całkowita bez znaku w naturalnym kodzie dwójkowym.
Zakres od 0 do 216 - 1 (65535).unsigned int, unsigned
4-bajtowa (32 bity) liczba całkowita bez znaku w naturalnym kodzie dwójkowym.
Zakres od 0 do 232 - 1 (4294967295).unsigned long int, unsigned long
4-bajtowa (32 bity) liczba całkowita bez znaku w naturalnym kodzie dwójkowym.
Zakres od 0 do 232 - 1 (4294967295).unsigned long long int, unsigned long long
8-bajtowa (64-bity) liczba całkowita bez znaku w naturalnym kodzie dwójkowym.
Zakres od 0 do 264 - 1 (18446744073709551615).
Liczby ze znakiem
short, short int, signed short
2-bajtowa (16 bitów) liczba całkowita ze znakiem w kodzie uzupełnieniowym do 2 - U2.
Zakres od -215 (-32768) do 215 - 1 (32767).int, signed int, signed
4-bajtowa liczba całkowita ze znakiem w kodzie U2 (32 bity).
Zakres od -231 (-2147483648) do 231 - 1 (2147483647)long, signed long int, signed long
4-bajtowa liczba całkowita ze znakiem w kodzie U2 (32 bity).
Zakres od -231 (-2147483648) do 231 - 1 (2147483647)long long, long long int, signed long long, signed long long int
8-bajtowa liczba całkowita ze znakiem w kodzie U2 (64 bity).
Zakres od -263 (-9223372036854775808) do 263 - 1 (9223372036854775807).
Podsumowanie
Typy całkowite bez znaku - NBC ze znakiem - U2 unsigned short int 2B - 16b Zakres 0...216 - 1 short int 2B - 16b Zakres -215 ...215 - 1 unsigned int
unsigned long int4B - 32b Zakres 0...232 - 1 int
long int4B - 32b Zakres - 231...231-1 unsigned long long int 8B - 64b Zakres 0...264 - 1 long long int 8B - 64b Zakres -263...263-1
Obecnie wszystkie procesory komputerów IBM są zintegrowane wewnętrznie z koprocesorem arytmetycznym, który sprzętowo (zatem bardzo szybko) wykonuje złożone operacje na liczbach zmiennoprzecinkowych. Podstawowe typy danych zmiennoprzecinkowych odpowiadają bezpośrednio typom danych, które obsługuje koprocesor. Koprocesor arytmetyczny pracuje w standardzie IEEE 754.
float
32-bitowa liczba zmiennoprzecinkowa o pojedynczej precyzji w standardzie IEEE 754 (4 bajty).
Zakres od - 3,4 x 1038 do 3,4 x 1038. Precyzja około 7 cyfr znaczących.double
64-bitowa liczba zmiennoprzecinkowa o podwójnej precyzji w standardzie IEEE 754 (8 bajtów).
Zakres od - 1,8 x 10308 do 1,8 x 10308. Precyzja około 15...16 cyfr znaczących.long double
Jest to wewnętrzny tym reprezentacji liczb zmiennoprzecinkowych w koprocesorze arytmetycznym. Aby zminimalizować błędy obliczeniowe koprocesor wykonuje wewnętrznie obliczenia na rozszerzonym formacie do 80-bitów. Dzięki temu wzrasta zakres oraz precyzja przetwarzanych liczb. Koprocesor po wykonaniu obliczeń automatycznie przelicza wynik z typu extended na typ single lub double.
80-bitowa liczba zmiennoprzecinkowa o rozszerzonej precyzji w standardzie IEEE 754 (10-bajtów).
Zakres od -1,1 x 104932 do 1,1 x 104932. Precyzja około 19...20 cyfr znaczących.Informacje na temat typu extended znajdziesz w rozdziale opisującym standard IEEE 754.
Podsumowanie
Typy zmiennoprzecinkowe koprocesora arytmetycznego float 32b - 4B Zakres ±3,4 x 1038 Precyzja 7...8 cyfr double 64b - 8B Zakres ±1,8 x 10308 Precyzja 15...16 cyfr long double 80b - 10B Zakres ±1,1 x 104932 Precyzja 19...20cyfr
char
Typ znakowy reprezentowany w pamięci komputera przez 1 bajt (8 bitów). Może przechowywać kod jednego znaku ASCII. Kod znaku interpretowany jest jako liczba całkowita ze znakiem w kodzie U2. Wartości dodatnie od 0 do 127 odnoszą się do znaków z podstawowego zestawu ASCII. Wartości ujemne od -1 do -128 określają kody rozszerzonego zestawu ASCII. W wyrażeniach arytmetycznych zmienne typu char zachowują się jak 8-mio bitowe liczby U2.
signed char
Dokładnie to samo, co typ char.
unsigned char
Typ znakowy reprezentowany w pamięci komputera przez 1 bajt (8 bitów). Przechowuje kod ASCII jednego znaku traktowany jako liczba całkowita bez znaku. W tym przypadku kody mogą przyjmować wartości od 0 do 255. W wyrażeniach zmienna typu unsigned char jest traktowana jak 8-mio bitowa liczba NBC.
Typy znakowe mogą tworzyć tablice umożliwiające przechowywanie ciągu znaków. Temat jest bardzo szeroki i wymaga osobnego artykułu.
bool
Typ logiczny, który może przyjmować dwie wartości: true lub false. W pamięci zajmuje 1 bajt (8 bitów). Jeśli typ bool przekształcimy za pomocą rzutowania na typ liczbowy, to wartość true będzie równa 1, a false będzie równa 0. Z kolei zrzutowanie wartości liczbowej na typ logiczny bool daje wartość true, jeśli wynik jest różny od zera i false jeśli jest równy 0.
00000000(BOOL) = false
00000001(BOOL) = true
Dokument ten rozpowszechniany jest zgodnie z zasadami licencji
GNU Free Documentation License.
Źródło: mgr Jerzy Wałaszek