Cтраница 1
Использование дополнительного кода к отрицательному двоичному числу дает возможность заменить процедуру вычитания на более простую в аппаратной реализации процедуру сложения. Для этого нужно проделать следующее: определить дополнительный код вычитаемого и произвести сложение этого кода с уменьшаемым. Если разность - число положительное ( бит старшего разряда равен нулю), то бит переноса необходимо отбросить; полученная последовательность бит и есть двоичный код результата. Если разность - ЧИСЛО отрицательное ( бит старшего разряда равен единице), то она представлена в дополнительном коде. [1]
Использование дополнительного кода к отрицательному двоичному числу дает возможность заменить процедуру вычитания на более простую в аппаратной реализации процедуру сложения. Для этого нужно проделать следующее: определить дополнительный код вычитаемого и сложить этот код с уменьшаемым. Если разность - число положительное ( бит старшего разряда равен нулю), то бит переноса необходимо отбросить; полученная последовательность бит и есть двоичный код результата. Если разность - число отрицательное ( бит старшего разряда равен единице), то она представлена в дополнительном коде. Для определения абсолютной величины отрицательного результата, представленного в таком виде, необходимо вычислить дополнительный код. [2]
Использование дополнительных кодов двоичных чисел значительно облегчает выполнение операции двоичного вычитания. [3]
С использованием дополнительного кода вычитание чисел сводится к сложению дополнений. [4]
При использовании дополнительных кодов алгебраическое сложение двух двоичных чисел также производится путем аналогичного поразрядного суммирования прямого кода положительного числа с дополнительным кодом отрицательного числа. [5]
При использовании дополнительного кода в случае, если уменьшаемое X больше вычитаемого Y, в старшем разряде сумматора возникает единица переполнения, которая должна быть отброшена. Если уменьшаемое меньше вычитаемого, то разность в накопителе записывается дополнительным кодом. [6]
При использовании дополнительного кода сложение чисел сводится к сложению их изображений. При этом существует двоичный перенос в старший разряд - разряд знака, а из разряда знака переноса не существует. Отрицательная сумма получается всегда своим дополнительным кодом. [7]
Рассмотрим теперь использование дополнительного кода для алгебраического сложения. [8]
Конечно, использование дополнительного кода приводит к тому, что отрицательное число становится трудно расшифровать. [9]
Вычисления с использованием дополнительных кодов производятся над словами определенной длины. Если в процессе вычислений получается результат большей длины, то должен вырабатываться сигнал, требующий расширения длины слова. Если такое расширение невозможно, то вычисления должны останавливаться. Средством индикации того, что возникла подобная ситуация, является признак переполнения. [10]
В данном случае при использовании дополнительных кодов единицу переноса, образующуюся при сложении знаковых разрядов, отбрасывают, а при использовании обратных кодов - циклически прибавляют к младшему разряду мантиссы. [11]
Как и при умножении с использованием дополнительных кодов отрицательных операндов, для получения истинных значений частного и остатка в конце процесса деления может возникать необходимость в проведении коррекции полученных чисел. Однако, в отличие от умножения, в данной операции не представляется возможной коррекция путем закономерного учета каких-то определенных поправочных членов. Она может быть выполнена только на основе сравнительного анализа исходных операндов и результата. [12]
Заметим, однако, что при использовании дополнительного кода диапазон представимых чисел несимметричен относительно нуля - это обстоятельство следует учитывать при программировании. Если, например, изменить знак у наибольшего по модулю отрицательного числа типа F, то полученный результат уже не может быть представлен в машине в том же формате. [13]
При делении по рассмотренному выше способу с использованием дополнительного кода частное может получаться с недостатком на единицу младшего разряда. Случаи появления недостатка могут обнаруживаться путем анализа знаков делимого, делителя и остатка. При некоторых комбинациях знаков требуется также определять равенство остатка нулю. В результате, если необходимо, то к младшему разряду частного прибавляется единица. [14]
При алгебраическом сложении двух двоичных чисел с использованием дополнительного кода положительные слагаемые представляются в прямом коде, а отрицательные - в дополнительном и производится арифметическое суммирование этих кодов, включая разряды знаков, которые при этом рассматриваются как разряды целых единиц. При возникновении переноса из разряда знака единица переноса отбрасывается. В результате получается алгебраическая сумма в прямом коде, если эта сумма положительна, и в дополнительном коде, если эта сумма отрицательна. [15]