Подтвердить что ты не робот

Два дополнения, почему имя "два"

Я знаю unsigned, два дополнения, их дополнение и значение знака, а также разницу между ними, но мне интересно:

  • почему он называется двумя (или одними) дополнениями, так есть ли более обобщенное дополнение N?
  • каким образом эти гении вывели такой естественный способ представления отрицательных чисел?
4b9b3361

Ответ 1

Два дополнения произошли, когда кто-то понял, что "будет отрицательным", вычитая 1 из 0 и позволяя разворачивать биты фактически упрощенной арифметикой, поскольку никаких специальных проверок не требуется, чтобы проверить, является ли число отрицательным или не. Другие решения дают вам разрыв между -1 и 0. Единственная странность с двумя дополнениями заключается в том, что вы получаете еще одно отрицательное число в своем диапазоне, чем у вас есть положительные числа. Но тогда другие решения дают вам странные вещи, такие как +0 и -0.

Согласно Википедии, само название происходит из математики и основано на способах сделать вычитание проще, когда у вас ограниченное число мест. Система на самом деле является "дополнением радикса", и поскольку двоичный код является базовым, это становится "двумя дополнениями". И получается, что "одно дополнение" названо в "уменьшенном дополнении радикса", которое является основанием минус один. Если вы посмотрите на это для десятичного числа, значения, лежащие в основе имен, имеют больше смысла.

Метод дополнений (Wikipedia)

Ответ 2

Вы можете сделать то же самое в других базах. В десятичной форме у вас будет 9 дополнений, где каждая цифра X заменяется на 9-X, а 10 дополнений числа - 9 дополнений плюс один. Затем вы можете вычесть, добавив 10 дополнений, предполагая фиксированное количество цифр.

Пример - в четырехзначной системе, учитывая вычитание

 0846
-0573
=0273

Сначала найдите 9-дополнение из 573, которое равно 9-0 9-5 9-7 9-3 или 9426
10 комплемента 573 равно 9426 + 1, или 9427
Теперь добавьте 10 дополнений и выбросьте все, что содержит 4 цифры

   0846
  +9427      .. 10 complement of 573
= 10273      .. toss the 'overflow' digit
=  0273      .. same answer

Очевидно, что простой пример. Но аналогия носит. Интересно, что самое отрицательное значение в 4-значном 10 дополнении? 5000

Что касается этимологии, я бы предположил, что термин 1 дополнение является дополнением в том же смысле, что и дополнительный угол от геометрии, равный 90 градусам минус угол, т.е. часть, оставшаяся после вычитания заданного из некоторое стандартное значение. Не знаете, как дополнение "2" имеет смысл, однако.