Идет переполнение, числа находятся в промежутке от -2^15 до (2^15) - 1 это в знаковой, если использовать( как пример) unsigned int, то промежуток будет от 0 до (2^16)-1. Если число переходит значение в знаковой переменной верхнюю положительную границу(2^15) - 1, то число становится отрицательным и так далее. Все еще зависит от системы на которой вы работаете. Допустим в C можно указать, сколько бит вам нужно в int.