Мегаобучалка Главная | О нас | Обратная связь


Сумматор чисел с произвольными знаками



2018-07-06 1041 Обсуждений (0)
Сумматор чисел с произвольными знаками 0.00 из 5.00 0 оценок




Часто бывает необходимым иметь схему, суммирующую числа с произвольными знаками. Такую схему можно построить с использованием сумматора-вычитателя.

Суть функционирования схемы состоит в том, что при одинаковых знаках операндов А и В их модули суммируются (|A|+|B|), а при разных вычитаются ( |A|-|B| ). Знак результата в первом случае определяется знаком операндов. Во втором случае он соответствует знаку А, если разность |A|-|B| положительная и знаку |B|, если разность модулей отрицательная.

Будем обозначать ЗнА, ЗнВ, ЗнS знаки операндов А, B и знак их суммы (разности) S. Кроме того, символом Зн будем обозначать знак результата операции над модулями. Знак суммы модулей всегда положительный, а знак их разности может быть любой. Численное значение знаковых переменных ЗнА, ЗнВи Зн равно 0, если числа положительные и равно 1, если они отрицательны.

Будем считать, что операнды имеют разрядность не выше n. В случае суммирования модулей операндов разрядность суммы может быть на 1 больше n, т.е. равной (n+1).

Соотношение знаков операндов будем определять с помощью операции исключающее ИЛИ. Параметр равен нулю при одинаковых знаках и P=1 при разных.

Алгоритм определения суммы двух чисел с произвольными знаками сводится к следующему:

1. Принять операнд А со знаком ЗнА и операнд В со знаком ЗнВ в соответствующие регистры (RGA, RGB);

2. Оценить соотношение знаков операндов по параметру Р );

3. Если Р=0, то вычислить сумму модулей ;

4. Если Р=1, то вычислить разность , знак разности Зн и сумму ;

5. Если Зн=0, то вывести S1 со знаком ЗнА и перейти на 7;

6. Если Зн=1 , то вывести S2 со знаком ЗнВ;

7. Конец.

Схема суммирования чисел с произвольными знаками дана на рис.1.6. Основным ее элементом является комбинированная схема сумматора-вычитателя (раздел 1.3) и схема вычитания модулей чисел, описанная в предыдущем разделе.

Операнды А и B поступают в приемные регистры с разрядностью n и занимают в регистрах разряды, начиная с младшего. Если разрядность операндов меньше n, то не занятые старшие разряды должны содержать нули. Следовательно, регистры перед загрузкой должны быть установлены в состояние 0.

 

 

Значения знаковых разрядов ЗнA и ЗнB поступают на схему исключающее ИЛИ для определения типа операции над абсолютными значениями операндов. Если знаки одинаковы (Р=0), то модули операндов

складываются. Сигнал Р при этом настраивает сумматор-вычитатель SM( ± ) на сложение. В противном случае (Р=1) – на вычитание.

Рассмотрим результат действия сумматора-вычитателя.

Сумматор-вычитатель в отличие от регистров должен иметь разрядность на единицу выше, т.е. (n+1). Поэтому при суммировании модулей чисел на выходе цепи распространения переноса сигнал Зн всегда равен 0 даже при разрядности операндов, равной n. Таким образом, результат суммирования готов к выводу в регистр суммы S, имеющий разрядность (n+1). При этом знак суммы соответствует знаку операндов ЗнА=ЗнВ=ЗнS.

При вычитании (Р=1) сигнал Зн на выходе цепи распространения переноса (заема) будем расценивать в качестве знака результата операции над модулями. Если Зн=0, то и есть результат вычитания, готовый к выводу. Знак суммы при этом равен ЗнА. Если Зн=1, то это означает, что при вычитании модулей чисел есть заем, а значит . Поэтому необходимы дальнейшие преобразования: инвертирование и суммирование с единицей: . После преобразований формируется результат готовый к выводу со знаком ЗнВ. Числовой пример вычитания чисел рассмотрен в предыдущем разделе.

Вывод результатов осуществляет мультиплексор под управлением сигнала Зн от сумматора-вычитателя.



2018-07-06 1041 Обсуждений (0)
Сумматор чисел с произвольными знаками 0.00 из 5.00 0 оценок









Обсуждение в статье: Сумматор чисел с произвольными знаками

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (1041)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.006 сек.)