3.7. Получение минимального и максимального значений числового типа
3.7. Получение минимального и максимального значений числового типа
Проблема
Требуется узнать наибольшее и наименьшее значения, представляемые на данной платформе числовым типом, таким как int или double.
Решение
Чтобы среди прочего получить максимальное и минимальное допустимые значения числового типа, используйте шаблон класса numeric_limits из заголовочного файла <limits> (см. пример 3.9).
Пример 3.9. Получение числовых ограничений
#include <iostream>
#include <limits>
using namespace std;
template<typename T>
void showMinMax() {
cout << "min: " << numeric_limits<T>::min() << endl;
cout << "max: " << numeric_limits<T>::max() << endl;
cout << endl;
}
int main() {
cout << "short:" << endl;
showMinMax<short>();
cout << "int:" << endl;
showMinMax<int>();
cout << "long:" << endl;
showMinMax<long>();
cout << "float:" << endl;
showMinMax<float>();
cout << "double:" << endl;
showMinMax<double>();
cout << "long double:" << endl;
showMinMax<long double>();
cout << "unsigned short:" << endl;
showMinMax<unsigned short>();
cout << "unsigned int:" << endl;
showMinMax<unsigned int>();
cout << "unsigned long:" << endl;
showMinMax<unsigned long>();
}
Вот что я получил в Windows XP, используя Visual C++ 7.1.
short:
min: -32768
max: 32767
int:
min: -2147483648
max: 2147483647
long:
min -2147483648
max 2147483647
float:
min: 1.17549e-038
max: 3.40282e-038
double:
min: 2.22507e-308
max: 1.79769e+308
long double:
min: 2.22507e-308
max: 1.79769e+308
unsigned short:
min: 0
max: 65535
unsigned int:
min: 0
max: 4294967295
unsigned long:
min: 0
max: 4294967295
Обсуждение
Пример 3.9 показывает простой пример получения минимального и максимального значений встроенных числовых типов. Шаблон класса numeric_limits имеет специализации для всех встроенных типов, включая как числовые, так и нечисловые типы. Стандарт требует, чтобы все типы, которые я использовал в примере 3.9, а также перечисленные далее, имели свою специализацию numeric_limits.
bool
char
signed char
unsigned char
wchar_t
min и max — это функции-члены numeric_limits типа static, которые возвращают наименьшее и наибольшее значения для типа переданного им параметра.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Получение и задание значений атрибутов тега
Получение и задание значений атрибутов тега Часто приходится получать и задавать значения атрибутов тега, с помощью которого создан элемент Web-страницы. Для этого Ext Core предоставляет два удобных метода и одно свойство объекта Element.Метод getAttribute возвращает значение
Получение и задание значений атрибутов стиля
Получение и задание значений атрибутов стиля Получение или задание значений атрибута стиля, примененного к какому-либо элементу Web-страницы, выполняется тоже весьма часто. В этом случае нам пригодятся несколько методов объекта Element, описанных далее.Метод getStyle возвращает
Получение и задание значений атрибутов тега
Получение и задание значений атрибутов тега Часто приходится получать и задавать значения атрибутов тега, с помощью которого создан элемент Web-страницы. Для этого Ext Core предоставляет два удобных метода и одно свойство объекта Element.Метод getAttribute возвращает значение
Получение и задание значений атрибутов стиля
Получение и задание значений атрибутов стиля Получение или задание значений атрибута стиля, примененного к какому-либо элементу Web-страницы, выполняется тоже весьма часто. В этом случае нам при- годятся несколько методов объекта Element, описанных далее.Метод getStyle
10.8.1 Вариант максимального размера сегмента
10.8.1 Вариант максимального размера сегмента Параметр "максимальный размер сегмента" (maximum segment size — MSS) применяется для объявления о наибольшем куске данных, который может быть принят и обработан системой. Однако название несколько неточно. Обычно в TCP сегмент
Определения максимального количества выводимых браузером символов
Определения максимального количества выводимых браузером символов Существует еще одна интересная возможность — указание запрета вывода строк текста больше определенного количества символов. Другими словами, можно указать количество символов в строке текста, после
Изменение минимального уровня зон Интернета
Изменение минимального уровня зон Интернета В браузере Internet Explorer 6.0 реализована защита уровней зон безопасности от неправильного изменения. Например, если вы попытаетесь изменить уровень зоны Интернета на вкладке Безопасность диалога Свойства обозревателя на уровень
Типы значений
Типы значений B Java и C# различаются типы значений и типы ссылок.• Типы значений. Это такие элементарные типы, как char, int и float, а также структуры struct в C#. Характерным для них является то, что для их создания не используется оператор new и оператор присваивания копирует значение
Отличия процедур типа Function от процедур типа Sub
Отличия процедур типа Function от процедур типа Sub Между процедурами типа Function и типа Sub есть одно существенное отличие: в процедуре типа Function обязательно где-то должен присутствовать по крайней мере один оператор, задающий значение этой функции. При этом используется имя
11.8. Представление динамического числового вектора
11.8. Представление динамического числового вектора ПроблемаТребуется иметь тип для манипулирования динамическими числовыми векторами.РешениеВы можете использовать шаблон valarray из заголовочного файла <valarray>. Пример 11.15 показывает, как можно использовать шаблон
11.9. Представление числового вектора фиксированного размера
11.9. Представление числового вектора фиксированного размера ПроблемаТребуется иметь эффективное представление числовых векторов фиксированного размера.РешениеВ программном обеспечении обычного типа часто более эффектный результат по сравнению с valarray дает