Сумматор чисел с произвольными знаками
Часто бывает необходимым иметь схему, суммирующую числа с произвольными знаками. Такую схему можно построить с использованием сумматора-вычитателя. Суть функционирования схемы состоит в том, что при одинаковых знаках операндов А и В их модули суммируются (|A|+|B|), а при разных вычитаются ( |A|-|B| ). Знак результата в первом случае определяется знаком операндов. Во втором случае он соответствует знаку А, если разность |A|-|B| положительная и знаку |B|, если разность модулей отрицательная. Будем обозначать ЗнА, ЗнВ, ЗнS знаки операндов А, B и знак их суммы (разности) S. Кроме того, символом Зн будем обозначать знак результата операции над модулями. Знак суммы модулей всегда положительный, а знак их разности может быть любой. Численное значение знаковых переменных ЗнА, ЗнВи Зн равно 0, если числа положительные и равно 1, если они отрицательны. Будем считать, что операнды имеют разрядность не выше n. В случае суммирования модулей операндов разрядность суммы может быть на 1 больше n, т.е. равной (n+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. Таким образом, результат суммирования При вычитании (Р=1) сигнал Зн на выходе цепи распространения переноса (заема) будем расценивать в качестве знака результата операции над модулями. Если Зн=0, то Вывод результатов осуществляет мультиплексор под управлением сигнала Зн от сумматора-вычитателя.
Популярное: Как вы ведете себя при стрессе?: Вы можете самостоятельно управлять стрессом! Каждый из нас имеет право и возможность уменьшить его воздействие на нас... Как построить свою речь (словесное оформление):
При подготовке публичного выступления перед оратором возникает вопрос, как лучше словесно оформить свою... Организация как механизм и форма жизни коллектива: Организация не сможет достичь поставленных целей без соответствующей внутренней... ![]() ©2015-2024 megaobuchalka.com Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (1078)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |