два дополняют, почему название "два" - PullRequest
24 голосов
/ 09 апреля 2010

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

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

Ответы [ 3 ]

32 голосов
/ 09 апреля 2010

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

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

Метод дополнений (Википедия)

8 голосов
/ 09 апреля 2010

Вы можете сделать то же самое в других базах. С десятичной дробью у вас будет 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's complement of 573
= 10273      .. toss the 'overflow' digit
=  0273      .. same answer

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

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

0 голосов
/ 23 февраля 2018

В десятичной системе счисления radix равно ten :

  • радикальное дополнение называется десятым дополнением
  • уменьшенное радикальное дополнение называется дополнением девяток

В двоичной системе нумерации radix равно two :

  • радикальное дополнение называется дополнением до двух
  • уменьшенное радикальное дополнение называется дополнительным

Источник: https://en.wikipedia.org/wiki/Method_of_complements

...