Сами внимательно посмотрите. Попробуйте записать 32768 в INTовую переменную. Я писал о границах переменной. Про инверсию в #п47 я не писал, это уже вы добавили.
Алгоритм да - один, это сложение. Вычитание заменяется сложением, только отрицательные значения (или вычитаемое) сначала приводится к доп коду (инверсия и +1), где необходимо и только потом складывается. Точнее, отрицательные числа уже хранятся в доп коде, а там, где идёт вычисление на лету - там приводится.