Представление чисел с учетом знака

 

Цифровые устройства не умеют вычитать, умножать и делить. Они умеют только складывать (таблица истинности полного одноразрядного сумматора), поэтому операцию вычитания сводим к операции сложения разнозначных чисел.

Для представления отрицательного числа под знак отводится один или два разряда с местоположением левее старшего разряда числа. Для записи положительного числа в знаковый разряд записывается ноль ("0"); для отрицательного числа — "1". В значащую часть положительного числа записывают прямой двоичный код, в значащую часть отрицательного — либо обратный, либо дополнительный коды: для представления числа в обратном коде в значащую часть числа необходимо дописать дополнение до числа 2n-1, где n — число разрядов значащей части исходного числа; для представления числа в дополнительном коде в значащую часть числа необходимо дописать дополнение до числа 2n, где n — число разрядов значащей части. Если положительное слагаемое, представленное в образовавшемся коде, после выполнения операции сложения над всеми, в том числе и знаковым, разрядами слагаемых, в знаковом разряде возникает перенос, то этот перенос добавляется к младшему разряду суммы; если отрицательное слагаемое было представлено в дополнительном коде, то после сложения всех разрядов, включая знаковый, в нем возникает перенос, этот перенос игнорируется.

Вывод: структура сумматора ориентирована на работу с отрицательными числами либо в обратном, либо в дополнительных кодах.

Пример:

А + В = 5,12+9,81= 0101,0010 + 0110,0010 0101,0010 1001,1101 Ответ: 1110,1111   В десятичном коде: 14,9375 А – В = 5,12-9,81= 0101,0010 – 0110,0010: 0 0101,0010 1 0110,0010 1 1 1011,0100 — обратный код суммы Ответ: - 0100,1011 В десятичном коде: -4,6875