- •Глава 2
- •2.1 Принципы построения систем счисления
- •2.1.1 Непозиционные системы счисления
- •2.1.2 Позиционные системы счисления
- •2.1.3 Специальные системы счисления
- •2.1.4 Выбор системы счисления
- •2.2 Виды позиционных систем счисления
- •Десятичная система счисления.
- •Двоично-десятичная система счисления
- •Восьмеричная и шестнадцатеричная системы счисления.
- •Восьмеричная система счисления
- •2.3 Перевод целых и дробных чисел из одной системы счисления в другую
- •Перевод числа из любой сс в десятичную сс
- •Перевод чисел из десятичной сс в любую другую сс
- •Перевод шестнадцатеричных чисел в десятичную сс.
- •Преобразования чисел, удобных для устных расчетов
- •Переводы чисел из одной системы в другую
- •2.4 Арифметические основы эвм
- •Арифметические операции, выполняемые в позиционных сс
- •Контрольные вопросы
- •2.4.2 Алгебраическое представление двоичных чисел
- •Контрольные вопросы
Контрольные вопросы
По каким правилам выполняются операции сложения
Расскажите о поразрядных операциях
Расскажите об операциях сдвига
Выполните логический сдвиг двоичного числа на 11010 на 4 разряда вправо
Выполните циклический сдвиг числа 1100110(2) влево на 4 разряда в 8-ми разрядной сетки
Выполните простой арифметический сдвиг влево для числа 1100110(2) в прямом коде на 3 разряда в 8-ми разрядной сетке
Выполните простой арифметический сдвиг вправо для числа 1100110(2) в прямом коде на 4 разряда в 8-ми разрядной сетке
Сложить два числа 101011102 и 001011012
Вычесть два числа 101012 и 10102
Умножить два числа 10111.012 и 10.112
Разделить число 1101011012 на 10102
2.4.2 Алгебраическое представление двоичных чисел
Кодирование отрицательных чисел в ЭВМ
Для алгебраического представления чисел (т.е. представления положительных и отрицательных чисел) в ЭВМ используют специальные коды:
прямой код числа;
обратный код;
дополнительный код.
При этом два последних кода позволяют заменить неудобную для компьютера операцию вычитания на операцию сложения с отрицательным числом. Дополнительный код обеспечивает более быстрое выполнение операций, поэтому в компьютере чаще всего применяется именно он.
Знак числа обычно кодируется двоичной цифрой, при этом:
код 0 означает знак + (плюс);
код 1 — знак - (минус).
Замечание:
П ринято в целых чисел точкой отделяется знаковый разряд от цифровой части числа, а в правильной дроби - запятой.
Кодированные числа принято обозначать квадратными скобками [Х]n при этом n принимает значение: пр –в прямом коде; доп –в дополнительном коде; об –в обратном коде.
Пример:
Число Прямой код Дополнительный код Обратный код
Х= +0,10101 [Х]пр= 0,10101 [Х]доп = 0,10101 [Х]об = 0.10101
Y= -0,01011 [У]пр= 1,01011 [Y]доп= 1.10100 [У]об = 1.10101
Прямой код
Прямой код числа представляется в виде его абсолютного значения и кода знака.
Если при сложении в ЭВМ оба слагаемых имеют одинаковый знак, то операция сложения выполняется обычным путем. Если при сложении слагаемые имеют разные знаки, то сначала необходимо выявить большее по абсолютной величине число, из него произвести вычитание меньшего по абсолютной величине числа и разности присвоить знак большего числа.
Важная особенность прямого кода в том, что цифру знакового разряда и цифровую часть числа (модуль) нельзя рассматривать как единое целое. Поэтому при умножении и делении чисел операции со знаком и модулями чисел выполняются отдельно. Выполнение операций умножения и деления в прямом коде выполняется обычным образом, но знак результата определяется по совпадению или несовпадению знаков участвовавших в операции чисел.
Операцию вычитания в этом коде нельзя заменить операцией сложения с отрицательным числом, поэтому возникают сложности, связанные с займом значений из старших разрядов уменьшаемого числа. В связи с этим алгебраические операции с прямым кодом в ЭВМ почти не применяется. Прямой код используется для представления чисел в ЗУ и устройствах ввода-вывода.
Примеры:
а) найти прямой код для целых чисел: х1 =1101 и х2 = -1011.
Получим [х1]1 =0.1101 и [х2]1 = 1.1011
б) найти прямой код для правильных дробей: х1 =0,0101 и х2 = -0,1011
Получим [х1]1 =0,0101 и [х2]1 = 1,1011
Обратный код
Представление обратного кода определяется следующими соотношением:
A при A ≥ 0 -положительное число
[A]i =
2+ А – 2-n при A ≤ 0 -отрицательное число
Из этого соотношения следует, что обратный код положительного числа равен самому числу.
Для того чтобы получить обратный код отрицательного числа, необходимо присвоить знаковому разряду значение 1 и проинвертировать все остальные разряды числа, т. е. во всех значащих разрядах нули заменить единицами, а единицы нулями.
Пример: Найти обратный код отрицательных чисел: -1011 и -0,1011
Пусть разрядная сетка числа имеет 8 разрядов, один из которых (старший разряд) отводится под код знака числа.
Тогда для целого числа х1 = -1011 получим: [х1]3 = 1.1110100,
а для дробного числа х2 = -0,1011 получим: [х2]3 = 1,0100000
Алгебраическое сложение в обратном коде
При отсутствии переполнения возможны четыре случая сочетания знаков и модулей слагаемых:
А > 0, В > 0, А + В < 1
Этот случай соответствует обычному сложению прямых кодов чисел. Переноса из знакового разряда не возникает. Коррекции результата не требуется.
А > 0, В < 0, А + В > 0
Возникает перенос из знакового разряда. Результат нуждается в коррекции путем вычитания 2 и добавления 2-n. Вес знакового разряда 20, а вес переноса из него – 21. Таким образом, игнорируя перенос из знакового разряда, вычитаем из результата 2, что соответствует первому члену корректирующего выражения. Для учета второго члена добавляем 1 к младшему разряду суммы, вес которого составляет 2-n.
А > 0, В < 0, А + В < 0
Переноса из знакового разряда не возникает. Результат не нуждается в коррекции.
А < 0, В < 0, |А + В| < 1
Истинное значение отрицательной суммы представлено в обратном коде, поэтому результат нуждается в коррекции путем вычитания 2 и добавления 2-n. Таким образом, игнорируя перенос из знакового разряда, вычитаем из результата 2, что соответствует первому члену корректирующего выражения. Для учета второго члена добавляем 1 к младшему разряду суммы, вес которого составляет 2-n.
Т аким образом, для выполнения алгебраического сложения двоичных чисел, представленных в обратном коде, достаточно, не анализируя соотношение знаков и модулей, произвести сложение чисел, включая знаковые разряды, по правилам двоичной арифметики, причем возникающий в знаковом разряде перенос должен быть добавлен к младшему разряду результата, осуществляя тем самым коррекцию предварительного результата. Полученный код является алгебраической суммой слагаемых, представленных в обратном коде.
Пример 2 случая. Сложить 2 числа в обратном коде А = 1310 и В = -310
А = +1101 Апр =0.1101 Аоб =0.1101
В = - 0011 Впр =1.0011 Воб =1.1100
10.1001
+1
Соб = 0.1010 → Спр = 0.1010 → С = +1010 → +1010
Перенос, возникающий в знаковом разряде, циклически передается в младший разряд предварительного результата.
Пример 3 случая. Сложить 2 числа в обратном коде А = -1310 и В = +310
А = -1101 Апр =1.1101 Аоб =1.0010
В = +0011 Впр =0.0011 Воб =0.0011
Соб =1.0101 → Спр =1.1010 → С =-1010 → -1010
Переноса из знакового разряда не возникает. Результат не нуждается в коррекции.
Пример 4 случая. Сложить 2 числа в обратном коде А = -510 и В = -610
А = - 0101 Апр =1.0101 Аоб =1.1010
В = - 0110 Впр =1.0110 Воб =1.1001
11.0011
+1
Соб = 1.0100 → Спр = 1.1011 → С = -01011 →-1310
Рассмотрим случай сложения чисел с одинаковыми знаками приводящих к переполнению разрядной сетки.
Пример с переполнением разрядной сетки.
Сложить два числа в обратном коде: 13/16 + 5/16 = 18/16
А = +0,1101 Апр =0.1101 Аоб =0.1101
В = +0,0101 Впр =0.0101 Воб =0.0101
Соб =1.0010 → Спр =1.1101 → С = - 0,1101
Таким образом, признаком переполнения в обратном коде можно считать знак результата, противоположный одинаковым знакам слагаемых.
Вывод.
Использование обратного кода в операциях алгебраического сложения/вычитания позволяет:
-использовать только действия арифметического сложения двоичных кодов;
-получать истинное значение знака результата;
-обнаруживать переполнение разрядной сетки;
-простота взаимного преобразования обратного кода в прямой и наоборот.
Недостаток. Коррекция предварительной суммы требует добавления единицы к её младшему разряду и может вызвать (в некоторых случаях) распространение переноса по всему числу, что приводит к увеличению вдвое времени суммирования. Для преодоления этого недостатка используют дополнительный код.
Дополнительный код.
Связь между числом и его изображением в дополнительном коде определяется следующим соотношением:
A при A ≥ 0 -положительное число
[A]i =
2 + А при A < 0 -отрицательное число
Из этого соотношения следует, что дополнительный код положительного числа равен самому числу.
Дополнительный код отрицательного числа дополняет исходное число до основания системы счисления.
Таким образом, для преобразования отрицательного двоичного числа в дополнительный код следует:
Преобразовать его сначала в обратный код (установив знаковый разряд в 1 и проинвертировав все остальные разряды числа) и добавить единицу к младшему разряду обратного кода.
Или оставить без изменения все младшие нули и одну младшую единицу, остальные разряды (кроме знакового) проинвертировать.
В случае возникновения переноса из первого после запятой разряда в знаковый разряд к числу следует прибавить единицу в младший разряд.
Пример. Преобразовать числа в дополнительный код
Число Прямой код Обратный код Дополнительный код
+ 0111 Апр = 0.0111 Аоб = 0.0111 Ад = 0.0111
- 0111 Апр = 1.0111 Аоб = 1.1000 Ад = 1.1001
- 1000 Апр = 1.1000 Аоб = 1.0111 Ад = 1.1000
- 0101 Апр = 1.0101 Аоб = 1.1010 Ад = 1.1011
- 0,1011 Апр = 1.1011 Аоб = 1.0100 Ад = 1.0101
Алгебраическое сложение в дополнительном коде
Как и при рассмотрении сложения в обратном коде в отсутствии переполнения возможны четыре случая сочетания знаков и модулей слагаемых:
А > 0, В > 0, А + В < 1
Этот случай соответствует обычному сложению прямых кодов чисел. Переноса из знакового разряда не возникает. Коррекции результата не требуется.
А > 0, В < 0, А + В > 0
В этом случае (при положительной сумме) результат равен А + В и коррекция заключается в вычитании 2.
А > 0, В < 0, А + В < 0
Переноса из знакового разряда не возникает. Результат не нуждается в коррекции.
А < 0, В < 0, |А + В| < 1
Здесь предварительный результат нуждается в коррекции путем вычитания 2, поскольку истинное значение отрицательной суммы, представленной в дополнительном коде А + В + 2.
Как и в обратном коде коррекция требуется в случаях 2 и 4, причем в дополнительном коде она сводится к игнорировании переноса возникающего в знакомом разряде.
Т аким образом, для выполнения алгебраического сложения двоичных чисел, представленных в дополнительном коде, достаточно, не анализируя соотношение знаков и модулей, произвести сложение чисел, включая знаковые разряды, по правилам двоичной арифметики, причем возникающий в знаковом разряде перенос отбрасывается. Полученный код является алгебраической суммой слагаемых, представленных в дополнительном коде.
Пример 2 случая. Сложить 2 числа в дополнительном коде А = 1310 и В = -310
А = +1101 Апр =0.1101 Аоб =0.1101 Ад = 0.1101
В = - 0011 Впр =1.0011 Воб =1.1100 Ад = 1.1101
10.1010 → С = +1010 → +1010
Поскольку сумма А+В>0 коррекция результата заключается только в игнорировании возникшего в знаковом разряде переноса.
Пример 3 случая. Сложить 2 числа в дополнительном коде А = -1310 и В = +310
А = -1101 Апр =1.1101 Аоб =1.0010 Ад = 1.0011
В = +0011 Впр =0.0011 Воб =0.0011 Ад = 0.0011
1.0110 → С = -1010 → -1010
Поскольку сумма А+В<0 отрицательная и результат представлен в дополнительном коде коррекция заключается в обратном преобразовании результата в прямой код, т.е. из результата вычитается 2 (1 из младшего разряда) затем полученный результат инвертируется (преобразование в обратный код).
Сд = 1.0110 → Соб =1.0101 → Спр =1.1010 → С =-1010 → -1010
Пример 4 случая. Сложить 2 числа в дополнительном коде А = -510 и В = -610
А = - 0101 Апр =1.0101 Аоб =1.1010 Ад = 1.1011
В = - 0110 Впр =1.0110 Воб =1.1001 Ад = 1.1010
11.0101
Поскольку сумма А+В<0 –отрицательная и результат представлен в дополнительном коде коррекция заключается в обратном преобразовании результата в прямой код, т.е. из результата вычитается 2 (1 из младшего разряда) затем полученный результат инвертируется (преобразование в обратный код).
Сд = 1.0101 → Соб = 1.0100 → Спр = 1.1011 → С = -01011 →-1110
Рассмотрим случай сложения чисел с одинаковыми знаками |А+В|>1 приводящих к переполнению разрядной сетки.
Пример с переполнением разрядной сетки.
Сложить два числа в дополнительном коде: 13/16 + 5/16 = 18/16
А = +0,1101 Апр =0.1101 Аоб =0.1101 Ад = 0.1101
В = +0,0101 Впр =0.0101 Воб =0.0101 Ад = 0.0101
1.0010
Сд = 1.0010 → Соб =1.0001 → Спр =1.1110 → С = - 0,1110
Таким образом, признаком переполнения в обратном коде можно считать знак результата, противоположный одинаковым знакам слагаемых.
Вывод
Применение дополнительного кода, по сравнению с обратным, имеет одно существенное преимущество – коррекция результата сводится просто к отбрасыванию переноса из знакового разряда и не требует дополнительных затрат машинного времени.
Недостатки. Более сложная процедура преобразования из прямого кода и проблемы с обнаружением переполнения. Для того чтобы минимизировать влияние первого недостатка, данные в памяти часто хранятся в дополнительном коде и преобразование пр.код – доп. код выполняются редко – только при вводе и выводе.
Арифметические операции сложения и вычитания
Суммирование целых двоичных чисел со знаком выполняются по тем же правилам, что и без знака т.е. по правилам десятичного сложения. Перенос в следующий разряд производится после того, как сумма достигает 2 (1+1). Результат выполнения операции должен находится в диапазоне:
2n - 1≥ |х| ≥ 0 где n –число разрядов, отводимых для цифровой части числа
т.е. если числа участвующие в операции сложения 8-разрядные (n=7), то и сумма должна укладываться в этот диапазон.
Пример:
а) Произвести сложение чисел х1 = 101012 и х2 = -010012 используя обратный код
Прямой код Обратный код Сложение х1 = 101012 [х1]пр = 0.0010101 0.0010101 0.0010101 х2 = -010012 [х2]пр = 1.0001001 1.1110110 + 1.1110110
10.0001011
+ 1
0,0001100
Проверим в десятеричном коде эквивалентными целыми числами:
Х1 = +2110 (101012); х2 = -910 (10012); х1 + х2 = 21 – 9 = 12 (01100(2))
З амечание: Для того чтобы избежать ошибок при выполнении бинарных операций, перед переводом чисел в обратные и дополнительные коды необходимо выравнивать количество разрядов прямого кода операндов до 4, 8, 16 или 32 разрядов.
б) Произвести сложение чисел х1 = -101012 и х2 = 010012 используя обратный код
Прямой код Обратный код Сложение х1 = -101012 [х1]пр = 1.0010101 1.1101010 1.1101010 х2 = +010012 [х2]пр = 0.0001001 0.0001001 +0.0001001
1.1110011
В результате получаем отрицательное число 1.1110011 – число, кодированное в обратном коде. Декодируем результат, т.е. инвертируем значащие цифры числа, и получим
1.00011002 = -1210
Проверка: х = -21; у = +9; х + у = -12 = 1.01100(2)
в) Произвести сложение чисел х1 = 101012 и х2 =- 010012 используя дополнительный код.
Прямой код Дополнительный код Сложение х1 = 101012 [х1]пр = 0.0010101 0.0010101 0.0010101 х2 = -010012 [х2]пр = 1.0001001 1.1110110 + 1.1110111
+ 1 10.0001100
1.1110111 удалить Результат: 0.0001100
Проверим в десятеричном коде эквивалентными целыми числами:
х1 = +2110 (101012); х2 = -910 (10012); х1 + х2 = 21 – 9 = 12 (01100(2))
г) Сложить двоичные числа А = -1010 и В = -0011 в обратном и дополнительном кодах:
Предварительные преобразования:
А = -1010 [А]пр = 1.1010 [А]об = 1.0101 [А]доп = 1.0110
В = -0011 [B]пр = 1.0011 [B]об = 1.1100 [B]доп = 1.1101
Решение:
[А]об = 1.0101 [А]доп = 1.0110
+ [B]об = 1.1100 + [B]доп = 1.1101
11.0001 [C]доп = 11.0011 С = -11012 = -1310
+1
[C]об = 1.0010 С = -11012 = -1310
При сложении чисел одного знака возможно переполнение разрядной сетки, признаком чего является несовпадение знака результата со знаком операнда. В АЛУ имеется специальная логическая схема, которая автоматически формирует признак переполнения.
Примеры с переполнением
а) сложить двоичные числа А = 1011 и В = 0111 в обратном и дополнительном кодах:
Предварительные преобразования:
А = 1011 [А]пр = 0.1011 [А]об = 0.1011 [А]доп = 0.1011
В = 0111 [B]пр = 0.0111 [B]об = 0.0111 [B]доп = 0.0111
Решение:
[А]об = 0.1011 [А]доп = 0.1011
+ [B]об = 0.0111 + [B]доп = 0.0111
[C]об 1.0010 [C]доп 1.0010
В этом примере сложение двух положительных чисел привело к положительному переполнению: операнды положительные, а результат отрицательный.
Для упрощения обнаружения переполнения разрядной сетки используются модифицированные коды, для которых знаковый разряд в сумматоре дублируется. Положительному переполнению в знаковых разрядах соответствуют цифры 01, а отрицательному – 10.
Значение знаковых разрядов 00 соответствует правильному положительному результату, а цифры 11 – правильному отрицательному.
Модифицированный код
При сложении чисел, меньших единицы, могут быть получены числа, по абсолютной величине больше единицы. Для выявления переполнения разрядной сетки в ЭВМ применяются модифицированные прямой, обратный и дополнительный коды.
В этих кодах знак кодируется двумя разрядами, причем знаку "плюс" отвечает комбинация 00, а знаку "минус" — комбинация 11.
Правила сложения для модифицированных кодов те же, что и для обычных. Единица переноса из старшего знакового разряда в модифицированном дополнительном коде отбрасывается, а в модифицированном обратном коде передается в младший цифровой разряд.
Признаком переполнения служит появление в знаковом разряде суммы комбинации 01 при сложении положительных чисел (положительное переполнение) или 10 при сложении отрицательных чисел (отрицательное переполнение).
Старший знаковый разряд в этих случаях содержит истинное значение знака суммы, а младший является старшей цифрой значащего числа.
Для коррекции переполнения число надо сдвинуть в разрядной сетке на один разряд вправо, а в старший знаковый разряд, который освободился, поместить цифру, равную новому значению младшего знакового разряда.
После корректирования переполнения мантиссы результата необходимо увеличить на единицу порядок результата.
Примеры:
а) сложить двоичные числа А = -1010 и В = 1100 в обратном и дополнительном модифицированных кодах:
Предварительные преобразования:
А = -1010 [А]Мпр = 11.1010 [А]Моб = 11.0101 [А]Мдоп = 11.0110
В = +1100 [B]Мпр = 00.1100 [B]Моб = 00.1100 [B]Мдоп = 00.1100
Решение:
[А]Моб = 11.0101 [А]Мдоп = 11.0110
+ [B]Моб = 00.1100 + [B]Мдоп = 00.1100
100.0001 [C]Мдоп = 100.0010 С = 00102 = 210
+1
[C]Моб = 00.0010 С = 00102 = 210
б) сложить двоичные числа А = -1101 и В = -1010 в обратном и дополнительном модифицированных кодах:
Предварительные преобразования:
А = -1101 [А]Мпр = 11.1101 [А]Моб = 11.0010 [А]Мдоп = 11.0011
В = -1010 [B]Мпр = 11.1010 [B]Моб = 11.0101 [B]Мдоп = 11.0110
Решение:
[А]Моб = 11.0010 [А]Мдоп = 11.0011
+ [B]Моб = 11.0101 + [B]Мдоп = 11.0110
[C]Моб 10.1000 [C]Мдоп 10.1001
В этом примере произошло отрицательное переполнение в результате.
Арифметические операции умножения и деления
Операция умножения чисел состоит из k –циклов, где k –число цифровых разрядов множителя. Результат умножения какого то разряда множителя на множимое называется частичным произведением, а их последовательное сложение – суммой частичных произведений (СЧП). В каждом цикле анализируется следующая цифра множителя:
-если это 1, то к СЧП прибавляется множимое,
-если 0, то сложение не выполняется.
Цикл завершается сдвигом на один разряд множимого относительно СЧП или сдвигом СЧП относительно неподвижного множителя.
Множимое и множитель размещаются в разрядной сетке на основе специальных схем – регистров, а СЧП –в сумматоре – регистре.
Умножение можно выполнить одним из четырех способов:
С младших разрядов множителя со сдвигом его и СЧП вправо при неподвижном множимом. Старшие разряды произведения находятся в сумматоре, а младшие – в регистре множителя.
С младших разрядов множителя при сдвиге множимого и неподвижной СЧП.
Со старших разрядов множителя при сдвиге СЧП влево и неподвижном множимом.
Со старших разрядов множителя при сдвиге его и СЧП влево.
Если хотя бы один из сомножителей равен нулю, то произведению сразу присваивается нулевое значение.
Алгоритм умножения целых чисел, представленных в прямом коде, по первому способу реализуется в следующей последовательности:
Взять модули сомножителей и обнулить исходное значение СЧП;
Если младшая цифра множителя равна 1, то к СЧП прибавляется множимое, если это 0, сложения не происходит;
Сдвиг вправо на один разряд СЧП и множителя;
Пункты 2 и 3 последовательно выполнять столько раз сколько цифровых разрядов множителя, после чего произведению присваивается знак, определенный сложением по модулю 2 знаков сомножителей.
Пример. Перемножить первым способом числа А = 1310 = 11012 и В = 1110 = 10112 представленные прямыми кодами.
1101 -модуль множимого
1011 -модуль множителя
0000 -исходная СЧП
+ 1101 -первое частичное произведение (ЧП)
1101 -первая СЧП
01101 -сдвиг вправо СЧП на 1 разряд
+1101 -второе ЧП
100111 -второе СЧП
0100111 -сдвиг вправо СЧП на 1 разряд
+ 0000 -третье ЧП
100111 -третье СЧП
0100111 -сдвиг вправо СЧП на 1 разряд
+ 1101 -четвертое ЧП
10001111 -четвертое СЧП
10001111 -сдвиг вправо СЧП на 1 разряд
Произведение С = А ∙ В = 100011112 = 14310
Разработаны также методы ускоренного умножения и умножения в дополнительных кодах.
Операция деления числа С = А : В обычно сводится к последовательности вычитаний делителя В сначала из делимого А, а затем из создаваемых в процессе деления остатков Ri. Числа А и В поступают в прямом коде. В зависимости от способа вычитания делителя различают два алгоритма деления: без восстановления остатка и с восстановлением.
Для обоих алгоритмов общим является следующее:
деление осуществляется над модулями чисел А и В (при делении целых чисел в машинах длина делимого А вдвое больше длины делителя В);
знак частного определяется сложением по модулю 2 знаков А и В;
перед делением анализируются числа А и В на равенство нулю: если А = О, то частному присваивается значение 0 и операция завершается; при В = О выполнение программы прерывается;
умножение частного на два осуществляется сдвигом его влево на один разряд, а операция вычитания делителя В заменяется его сложением в дополнительном коде;
первый остаток Ri определяет по формуле
Ri = 2 |A| - B = 2 |A| + [-B]доп
причем, если Ri < 0, то деление возможно, если Ri > 0, то возникает переполнение разрядной сетки;
• цифры частного определяются, начиная со старших разрядов:
0 при Ri < 0
Сi =
1 при Ri ≥ 0
Где i = 1, 2, ..., k, а k — заданное количество цифр частного.
Обычно первый разряд Сi отводится для записи знака.
Пример.
Разделить числа А = 4910 и В = -710 на основе алгоритма без восстановления остатка. Прямой код операндов: [А]ПР = 0,0110001, [В]пр = 1,111; [-В]доп = 1,001:
[А]ПР = 0,0110001
+ [В]пр = 1,111
2[А] = 0,1100010
+ [-В]доп = 1,001
R1 = 1.1110010 < 0 С1 = 0
2R1 = 1.1100100
+ [В] = 0,111
R2 = 0.1010100 > 0 С2 = 1
2R2 = 1.0101000
+ [-В]доп = 1,001
R3 = 0.0111000 > 0 С3 = 1
2R3 = 1.1110000
+ [-В]доп = 1,001
R4 = 0.0000000 > 0 С4 = 1
Частное [С]пр = 1,111; С = - 111 = - 7 остаток равен 0
Знак частного А [7] В[7] = 0 1 = 1