Только для справки: negation
-> adding one
.
Возьмем 5
в качестве примера в 8 битах, цитируемых из wiki
to convert 5 to -5: 0000 0101 - flip -> 1111 1010 - add one -> 1111 1011
Существует хитрость для преобразования числа из положительного в отрицательное или наоборот:
Добавление их, игнорируя их бит со знаком (крайний левый бит), даст вам 2^N
(где N - количество бит для представления числа).
Как показано выше в 8-битном представлении, сумма 5 (0000 0101)
и -5 (1111 1011)
даст вам 1 0000 0000
, что составляет (2 ^ 8).