Преобразование из положительного числа в отрицательное в дополнение к двум (стандартный формат со знаком) представляет собой побитовую инверсию и добавление единицы.
Обратите внимание, что для простоты я использую один байт со знаком.
So if 60 = 0011 1100
Then c = 1100 0011 + 1
= 1100 0100
А для подписанного байта самый старший бит отрицателен,
так что
c = -128 + 64 + 4 = -60
Вам необходимо добавить 1, чтобы учесть тот факт, что самый старший бит равен -128, а наибольшее положительное число - 0111 1111 = 127. У всех отрицательных чисел есть 1 для -128, которое необходимо сместить.
Это легко увидеть, когда вы смотрите на преобразование 0 в -0. Инвертируйте 00000000, и вы получите 11111111, а при добавлении одного вы вернетесь к 00000000. Сделайте то же самое с 1 по -1, и вы получите 11111111 - максимально возможное отрицательное число.