Основное объяснение дополнения к двоичному / шестнадцатеричному значению состоит в том, чтобы перевернуть каждую цифру и затем добавить 1. Например, скажем, у нас было следующее значение:
0xA5
Первое, что нужно сделать, этопреобразовать значение в двоичное число:
0xA5 -> 10100101
Чтобы выполнить дополнение до двух, переверните все биты:
10100101
||
\/
01011010
, а затем добавьте 1:
01011011
Преобразование этого двоичного числа в десятичное число дает 91. Таким образом, комплемент двоичного значения шестнадцатеричного значения «0xA5» равен -91.
(Если вы рассматриваете шестнадцатеричное значение как представление целого числа со знаком со знаком, выполняйте дополнение к двум только в том случае, если старший двоичный бит в двоичном представлении равен 1. Если он равен 0, обрабатывайте остальные биты как нормальные.)