
Книги / Книга Проектирование ВПОВС (часть 2)
.pdf

3.5.4. Простейшие методы перевода чисел из двоичной в двоично-
избыточую систему счисления, начиная со старших разрядов
Во многих случаях для проведения арифметических операций нет необходимости переводить в ДИЗСС всё число. Достаточно освободиться от знака. В этом случае достаточно анализировать и преобразовывать два или три старших разряда. Тогда для перевода двоичных чисел в ДИЗСС можно построить следующую таблицу перевода.
|
|
|
|
|
|
|
|
|
|
Таблица 3.7 |
||
|
|
|
|
|
|
|
|
|
|
|
|
|
x |
0 |
x |
1 |
x |
2 |
x |
0 |
x |
1 |
|
x |
2 |
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
||||||
0 |
0 |
0 |
0 |
0 |
|
0 |
||||||
|
|
|
|
|
|
|
||||||
0 |
0 |
1 |
0 |
0 |
|
1 |
||||||
|
|
|
|
|
|
|
||||||
0 |
1 |
0 |
0 |
1 |
|
0 |
||||||
|
|
|
|
|
|
|
||||||
0 |
1 |
1 |
1 |
0 |
|
1 |
||||||
|
|
|
|
|
|
|
||||||
1 |
0 |
0 |
1 |
0 |
|
0 |
||||||
|
|
|
|
|
|
|
||||||
1 |
0 |
1 |
0 |
1 |
|
1 |
||||||
|
|
|
|
|
|
|
||||||
1 |
1 |
0 |
0 |
1 |
|
0 |
||||||
|
|
|
|
|
|
|
||||||
1 |
1 |
1 |
0 |
0 |
|
1 |
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
В наборах 3 и 4 возникает переполнение. Переполнение возникает всегда, если после запятой стоят подряд две и более единицы. Для исключения переполнения осуществляется сдвиг вправо на один разряд. В этом случае наборы 3 и 4 исключаются. Таким образом, при преобразовании образуется один из наборов x+ и исходные разряды числа, и один из наборов x – ,
оставшиеся разряды в котором заполняются нулями.
|
|
. 0 0 * * * * … |
|
|
. 0 0 0 0 … 0 |
+ |
= |
. 0 1 * * * * … |
- |
= |
. 0 1 0 0 … 0 |
x |
x |
||||
|
|
. 1 0 * * * * … |
|
|
. 1 0 0 0 … 0 |
Звёздочками обозначены неизменяемые разряды
x = 0. 01101101; |
x = 1. 10110110; |
|
192 |


Схема преобразования приведена на рис. 3.25. На первый регистр поступают положительные цифры, а на второй – отрицательные. Через C0
обозначена приёмная тактирующая серия, Сn – сигнал записи суммы в регистр
S, и он же поступает в самый младший разряд сумматора на вход переноса как дополнительная единица.
+ |
|
Рг1 |
|
-n |
|
||
|
|
||
Cn(2 |
) |
|
|
C0 |
|
А |
СМ |
|
|
||
|
|
В |
|
|
|
|
|
|
|
|
Cn |
- |
|
Рг2 |
РгS |
|
|
||
|
|
|
S |
Рис. 3.26
3.6. Выполнение арифметических операций в знакоразрядной избыточной
двоичной системе счисления (ДИЗСС) с произвольной разрядностью
Для построения алгоритмов сложения и умножения чисел в ДИЗСС с переменной разрядностью рассмотрим выполнения этих операций над фиксированным форматом. Для начала необходимо задать соответственно таблицы сложения и умножения. Рассмотрим каждую из этих операций.
3.6.1. Сложение чисел в ДИЗСС
Для определения таблицы сложения цифр в ДИЗСС оценим максимально возможную сумму цифр.
Максимальная цифра определяется как
Amax = amax – amin .
Для двоично-избыточной знакоразрядной системы счисления Amax равно
Amax = +1 – (–1) = 2.
194


|
1 |
2 |
3 |
4 |
|
5 |
6 |
7 |
8 |
|
|
1 такт |
C C S |
|
|
|
|
|
|
|
|
||
|
0 |
1 |
|
|
|
|
|
|
|
|
|
2 такт |
|
C C S |
|
|
|
|
|
|
|
|
|
|
|
0 |
1 |
|
|
|
|
|
|
|
|
3 такт |
|
|
C C |
S |
|
|
|
|
|
|
|
|
|
|
0 |
1 |
|
|
|
|
|
|
|
4 такт |
|
|
|
C C S |
|
|
|
|
|||
|
|
|
|
|
0 |
1 |
|
|
|
|
|
5 такт |
|
|
|
|
|
C C S |
|
|
|
|
|
|
|
|
|
|
|
0 |
1 |
|
|
|
|
6 такт |
|
|
|
|
|
|
C C S |
|
|
|
|
|
|
|
|
|
|
|
0 |
1 |
|
|
|
7 такт |
|
|
|
|
|
|
|
C C S |
|
|
|
|
|
|
|
|
|
|
|
0 |
1 |
|
|
8 такт |
|
|
|
|
|
|
|
|
C C S |
|
|
|
|
|
|
|
|
|
|
|
0 |
1 |
|
9 такт |
|
|
|
|
|
|
|
|
|
0 0 0 |
|
10 такт |
|
|
|
|
|
|
|
|
|
|
0 0 0 |
|
-1 0 |
1 |
2 |
|
3 |
4 |
5 |
6 |
7 |
8 |
При сложении цифр старшего и следующего за ним разрядов два первых такта являются вспомогательными и при разрядности чисел n общее число тактов суммирования равно n + 2.
Появление значащей цифры в разряде с номером –1 после коррекции говорит о неправильно выбранном масштабе, имеет место переполнение со значением (+ 2). Действительно, такое переполнение возможно, если складывать два максимальных положительных числа, формально не имеющих переполнения. Появление цифры в нулевом разряде также свидетельствует о переполнении. Существует истинное и фиктивное переполнение. Фиктивное переполнение будет, если значения в соседних разрядах равны 1. 1 или 1 .1, т.
е. фактическое значение есть 0.1 или 0. 1 . Переполнение будет истинным при значениях разрядов 1.0, 1.1; 1.0 или 1 .0. Коррекция –1-го, 0-го и 1-го разрядов осуществляется в 3-м такте при выдаче 1-го разряда. Во всех случаях переполнения в –1-м и 0-м разрядах всегда в момент их прохождения выдается нуль.
196



