Сумматор чисел с произвольными знаками
Часто бывает необходимым иметь схему, суммирующую числа с произвольными знаками. Такую схему можно построить с использованием сумматора-вычитателя. Суть функционирования схемы состоит в том, что при одинаковых знаках операндов А и В их модули суммируются (|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, то это означает, что при вычитании модулей чисел есть заем, а значит . Поэтому необходимы дальнейшие преобразования: инвертирование и суммирование с единицей: . После преобразований формируется результат готовый к выводу со знаком ЗнВ. Числовой пример вычитания чисел рассмотрен в предыдущем разделе. Вывод результатов осуществляет мультиплексор под управлением сигнала Зн от сумматора-вычитателя.
Популярное: Почему стероиды повышают давление?: Основных причин три... Почему люди поддаются рекламе?: Только не надо искать ответы в качестве или количестве рекламы... Как построить свою речь (словесное оформление):
При подготовке публичного выступления перед оратором возникает вопрос, как лучше словесно оформить свою... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (1049)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |