Niedopełnienie i przepełnienie C ++

Cześć, jestem tu nowy, więc daj mi znać, jeśli coś jest nie tak i postaram się poprawić następnym razem.

Próbuję zrozumieć, jak działa niedopełnienie i przepełnienie w C ++. Rozumiem, że jeśli zakres zmiennej zostanie przekroczony, rozpocznie się od drugiego końca zakresu. Zatem jeśli minimum to -32768, a jeśli wykonamy -1, nowa wartość powinna być SHRT_MAX. (32767) Oto mój kod:

<code>#include<iostream.h>
#include<limits.h>
#include<conio.h>
int main ( void )
{
 int testpositive =INT_MIN ;
 short testnegative = SHRT_MIN ; 
 cout<< SHRT_MIN<<"\n";
 cout << testnegative-1<<"\n";
 cout << INT_MIN << "\n";
 cout << testpositive-1 << "\n"; 
 cout<<testpositive-2;
 getch();
 return 0;
}   
</code>

questionAnswers(4)

yourAnswerToTheQuestion