JustPaste.it

Dane liczbowe w języku C++

1f736e9233142a4ec343f621dcbfcd93.gif

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 int
4B - 32b Zakres 0...232 - 1 int
long int
4B - 32b Zakres - 231...231-1
unsigned long long int 8B - 64b Zakres 0...264 - 1 long long int 8B - 64b Zakres -263...263-1

dbb0ebd9e7f89951028aee01ac9ce1e9.gif

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

e4741cfb43b66510721cf75935eb1747.gif

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.

eeadeb1a55723c5626d3280c73bc303a.gif

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