INT_MAX и INT_MIN в C / C ++ и приложениях
Опубликовано: 31 Декабря, 2021
В большинстве случаев в соревновательном программировании необходимо назначить переменной максимальное или минимальное значение, которое может содержать тип данных, но запоминание такого большого и точного числа оказывается сложной задачей. Поэтому в C ++ есть определенные макросы для представления этих чисел, так что они могут быть напрямую присвоены переменной без ввода целого числа.
INT_MAX - это макрос, который указывает, что целочисленная переменная не может хранить какое-либо значение, превышающее этот предел.
INT_MIN указывает, что целочисленная переменная не может хранить какое-либо значение ниже этого предела.
Значения INT_MAX и INT_MIN могут отличаться от компилятора к компилятору. Ниже приведены типичные значения в компиляторе, где целые числа хранятся с использованием 32 бит. Значение INT_MAX составляет +2147483647. Значение INT_MIN - -2147483648.
CPP
// C++ program to print values of INT_MAX // and INT_MIN #include <bits/stdc++.h> using namespace std; int main() { cout << INT_MAX << endl; cout << INT_MIN; return 0; } |
C
// C program to print values of INT_MAX // and INT_MIN // we have to include limits.h for results in C #include <limits.h> #include <stdio.h> int main() { printf ( "%d
" , INT_MAX); printf ( "%d" , INT_MIN); } |
Выход
2147483647 -2147483648
Приложения INT_MAX и INT_MIN:
1. Проверьте целочисленное переполнение:
CPP
// C++ code to check for Integer overflow while // adding 2 numbers #include <bits/stdc++.h> // Function to check integer overflow int check_overflow( int num1, int num2) { // Checking if addition will cause overflow if (num1 > INT_MAX - num2) return -1; // No overflow occured else return num1 + num2; } // Driver code int main() { // The sum of these numbers will equal INT_MAX // If any of them is incremented by 1, overflow // will occur int num1 = 2147483627; int num2 = 20; // Result is -1 if overflow occurred // Stores the sum, otherwise int result = check_overflow(num1, num2); // Overflow occurred if (result == -1) std::cout << "Integer overflow occurred" ; // No overflow else std::cout << result; } |
Выход
2147483647