Рассмотрим двоичное представление числа 32789. Оно будет таким:
 Номера битов:  F E D C B A 9 8 7 6 5 4 3 2 1 0
     Значения:  1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1
Раз старший разряд имеет значение 1, то число будет отрицательным (не забывайте тот факт, что эта переменная имеет тип int, что позволяет ей принимать как положительные, так и отрицательные значения). Мы ответили на одну часть вопроса: откуда взялось отрицательное число? Попробуем ответить на вторую часть вопроса: почему именно это число -32747?
Напомним алгоритм получения из положительного натурального двоичного числа соответствующего отрицательного двоичного числа:
Воспользуемся этим алгоритмом. Возьмем двоичное представление числа 32747:
 Номера битов:  F E D C B A 9 8 7 6 5 4 3 2 1 0
     Значения:  0 1 1 1 1 1 1 1 1 1 1 0 1 0 1 1
Инвертируем его биты:
 Номера битов:  F E D C B A 9 8 7 6 5 4 3 2 1 0
     Значения:  1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0
К получившемуся числу прибавим единицу:
 Номера битов:  F E D C B A 9 8 7 6 5 4 3 2 1 0
     Значения:  1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0
               +                              1
                ------------------------------- 
    Результат:  1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1
Если сравнить получившийся результат с двоичным представленим числа 32789, то можно заметить, что они одинаковы. Отсюда можно сделать вывод, что числа 32789 и -32747 имеют в памяти компьютера одинаковое представление, но содержимое этого участка памяти интерпретируется по-разному в зависимости от типа переменной!