Компилятор меняет значение переменной при переполнении

Программа выводит непонятный для меня ответ: -15478. В C++ новичок, хочу разобраться досконально в этом вопросе. Я использовал вместо int short, зная его ограничения. Но по приколу решил посмотреть. Почему выводится именно такой ответ?

#include <iostream>
using namespace std;

int main() {
    short num = 639882;
    cout << num;

    return 0;
}```

Ответы (0 шт):