Ваша математика неверна.
27 - это 0 1 1 0 1 1
в двоичном формате (обратите внимание на начальный 0, который я добавил для знака)
-27 - это 1 0 0 0 1 1
в двух дополнениях.
когда вы с этим посчитаете, вы получите правильный результат.
Вот «трюк» для быстрого выполнения дополнения до двух.
Начиная с LSB, копируйте числа точно до тех пор, пока не встретите 1-й ноль, а затем скопируйте и этот ноль. После этого переверните все биты, пока не появится MSB.
Это эквивалентно переключению всех битов (одно дополнение) и добавлению одного (чтобы превратить его в дополнение двух), но только за один шаг.