Размеры и диапазоны типов

Материал из cppreference.com
< cpp
Перейти к: навигация, поиск

Размеры и диапазоны значений типов зависят от используемого процессора и компилятора. Заголовочный файл "cfloat" (или "float.h") содержит характеристики для вещественных типов, а "climits" (или "limits.h") - для целочисленных типов. Вы можете использовать операцию keywords/sizeof для определения размера любого типа (в байтах). Однако для большинства архитектур эти размеры совпадают: int и float обычно 32 бита, char - 8 бит, а double - 64 бита; для хранения bool используется 1 бит, long long - 64 бита.

Ограничения для числовых типов определены в заголовочном файле <limits>. Методы и константы шаблонного класса numeric_limits описаны ниже. Специализация этого класса может быть определена для любого пользовательского типа данных.

Метод или\\ константа Тип результата Описание
is_specialized bool
radix int основание показателя степени
digits int количество (двоичных) цифр в мантиссе
digits10 int количество десятичных цифр в мантиссе
is_signed bool число со знаком?
is_integer bool целое?
is_exact bool точное?
min() <тип> нормализованное минимальное значение (для вещественных положительное)
max() <тип> наибольшее значение
epsilon() <тип> точность, такое что 1 + epsilon > 1
round_error() <тип> ошибка округления
infinity() <тип> бесконечность
quiet_NaN() <тип> неверное число, не сигнализирующее об ошибке
signaling_NaN() <тип> неверное число, сигнализирующее об ошибке
denorm_min() <тип> ненормализованное минимальное значение
min_exponent int минимальная (двоичная) экспонента
min_exponent10 int минимальная десятичная экспонента
max_exponent int максимальная (двоичная) экспонента
max_exponent10 int максимальная десятичная экспонента
has_infinity bool есть бесконечность?
has_quiet_NaN bool
has_signaling_NaN bool
has_denorm <тип>_denorm_style
has_denorm_loss bool
is_iec559 bool соответствует IEC-559?
is_bounded bool ограничен?
is_modulo bool по модулю?
traps bool
tinyness_before bool
round_style float_round_style\\ { round_to_nearest, ... } тип округления

В основном используется для проверки границ, определения максимальных и минимальных значений, которые может содержать данный тип. Код ниже печатает минимум и максимум типа short для конкретного компьютера.

  #include <limits>
  std::cout << "Maximum short value: " << std::numeric_limits<short>::max() << std::endl;
  std::cout << "Minimum short value: " << std::numeric_limits<short>::min() << std::endl;
Личные инструменты
Пространства имён
Варианты
Действия
Навигация
Инструменты
На других языках