Слово дополнение происходит от полноты. В десятичном мире цифры от 0 до 9 обеспечивают дополнение (полный набор) цифр или цифровых символов для выражения всех десятичных чисел. В двоичном мире цифры 0 и 1 обеспечивают дополнение чисел для выражения всех двоичных чисел. Фактически символы 0 и 1 должны использоваться для представления всего (текста, изображений и т. Д.), А также положительного (0) и отрицательного (1).
В нашем мире пробел слева от числа считается нулем:
35=035=000000035.
В хранилище компьютера нет свободного места. Все биты (двоичные цифры) должны быть либо 0, либо 1. Для эффективного использования числа памяти могут храниться как 8-битные, 16-битные, 32-битные, 64-битные, 128-битные представления. Когда число, которое сохраняется как 8-битное число, передается в 16-битное местоположение, знак и величина (абсолютное значение) должны оставаться неизменными. Оба дополнения 1 и 2 дополняют представления облегчают это.
Как существительное:
Как дополнение 1, так и дополнение 2 являются двоичными представлениями знаковых величин, где старший значащий бит (один слева) является знаковым битом. 0 для положительного и 1 для отрицательного.
2s дополнение не означает отрицательное . Это означает подписанное количество. Как и в десятичном виде, величина представлена как положительная величина. Структура использует расширение знака для сохранения количества при переходе в регистр [] с большим количеством битов:
[0101]=[00101]=[00000000000101]=5 (base 10)
[1011]=[11011]=[11111111111011]=-5(base 10)
как глагол:
2 дополнения означает , чтобы отрицать . Это не значит сделать негатив. Это означает, что если негатив делает позитивом; если положительный, то отрицательный. Величина является абсолютной величиной:
if a >= 0 then |a| = a
if a < 0 then |a| = -a = 2scomplement of a
Эта способность позволяет эффективно вычитать двоичные числа, используя отрицание, а затем добавить.
a - b = a + (-b)
Официальный способ взять дополнение 1 - для каждой цифры вычесть ее значение из 1.
1'scomp(0101) = 1010.
Это то же самое, что переключать или инвертировать каждый бит по отдельности. Это приводит к отрицательному нулю, который не очень нравится, поэтому добавление единицы к дополнению te 1 избавляет от проблемы.
Чтобы отменить или взять дополнение 2s, сначала возьмите дополнение 1s, затем добавьте 1.
Example 1 Example 2
0101 --original number 1101
1's comp 1010 0010
add 1 0001 0001
2's comp 1011 --negated number 0011
В примерах отрицание также работает со знаками с расширенными числами.
Добавление:
1110 Carry 111110 Carry
0110 такой же, как 000110
1111 111111
сумма 0101 сумма 000101
вычитание:
1110 Carry 00000 Carry
0110 is the same as 00110
-0111 +11001
---------- ----------
sum 0101 sum 11111
Обратите внимание, что при работе с дополнением 2, пустое пространство слева от числа заполняется нулями для положительных чисел, но заполняется нулями для отрицательных чисел. Керри всегда добавляется и должно быть 1 или 0.
Приветствия