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
C++ C