2.1.1. Арифметические типы
Есть две разновидности арифметических типов:
Размер (т.е. количество битов) арифметических типов зависит от конкретного компьютера. Стандарт гарантирует минимальные размеры, перечисленные в табл. 2.1. Однако компиляторы позволяют использовать для этих типов большие размеры. Поскольку количество битов не постоянно, значение одного типа также может занимать в памяти больше или меньше места.
Таблица 2.1. Арифметические типы языка С++
Тип | Значение | Минимальный размер |
---|---|---|
bool | Логический тип | Не определен |
char | Символ | 8 битов |
wchar_t | Широкий символ | 16 битов |
char16_t | Символ Unicode | 16 битов |
char32_t | Символ Unicode | 32 бита |
short | Короткое целое число | 16 битов |
int | Целое число | 16 битов |
long | Длинное целое число | 32 бита |
long long | Длинное целое число | 64 бита |
float | Число с плавающей запятой одинарной точности | 6 значащих цифр |
double | Число с плавающей запятой двойной точности | 10 значащих цифр |
long double | Число с плавающей запятой повышенной точности | 10 значащих цифр |
Тип bool
представляет только значения true
(истина) и false
(ложь).
Существует несколько символьных типов, большинство из которых предназначено для поддержки национальных наборов символов. Базовый символьный тип, char
, гарантировано велик, чтобы содержать числовые значения, соответствующие символам базового набора символов машины. Таким образом, тип char
имеет тот же размер, что и один байт на данной машине.
Остальные символьные типы, wchar_t
, char16_t
и char32_t
, используются для расширенных наборов символов. Тип wchar_t
будет достаточно большим, чтобы содержать любой символ в наибольшем расширенном наборе символов машины. Типы char16_t
и char32_t
предназначены для символов Unicode. (Unicode — это стандарт для представления символов, используемых, по существу, в любом языке.)
int
будет по крайней мере не меньше типа short
, а тип long long
— не меньше типа long
. Тип long long
введен новым стандартом.