Разделы
Рекомендуем
|
Автоматическая электрика Автоматика радиоустройств 1. Умножение начинается с младших разрядов множителя: v 0,100111 х0,111011 100111 100111 000000 100111 100111 + 100111 0,100011Ц1101 2. Умножение начинается со старших разрядов множителя: 0,100111 0,111011 100111 100111 100111 000000 100111 100111 0,100011111101 Xixz = 0,100011111101. Из примеров видно, что умножение двоичных чисел распадается на операции сдвига множимого и сложения сдвинутых множимых. Множимое сдвигается влево, если умножение начинается с младших разрядов множителя, или вправо, если умножение начинается со старших разрядов множителя. Множимое сдвигается на один разряд и прибавляется к полученной ранее сумме, если цифра множителя - единица. Если цифра множителя - нуль, то множимое сдвигается на один разряд, но не прибавляется. Рассмотренный процесс повторяется столько раз, сколько разрядов содержит множитель. Деление двоичных чисел в машинах с фиксированной запятой. Деление двоичных чисел сводится к ряду последовательных вычитаний (или прибавлений) делителя из делимого и сдвигу делителя вправо или остатка влево на один разряд при каждом шаге деления Вычитание заменяется сложением обратных или дополнительных ко- дов. Знак частного определяется сложением по модулю 2 знаковых разрядов делимого и делителя в одноразрядном сумматоре. Выполнение деления в машине с фиксированной запятой в отличие от умножения возможно лишь в том случае, когда делимое по абсолютной величине меньше делителя. Имеются различные способы деления двоичных чисел. Деление может начинаться с определения возможности деления. Для этого из модуля делимого вычитается модуль делителя. Если полученная разность отрицательна, то делимое меньше делителя и деление в машине с фиксированной запятой возможно. Если разность положительна, то делимое больше делителя, деление невозможно вследствие переполнения разрядной сетки. Определение частного возможно двумя способами. Первый способ состоит в том, что если при очередном шаге деления получается отрицательный остаток (цифра частного 0), то делитель прибавляется вновь и тем самым происходит возврат к исходному значению делимого. После восстановления делимого делитель сдвигается вправо йа один разряд и вычитается из делимого. Если при этом знак остатка становится положительным, то в частном должна быть цифра 1. При отрицательном остатке снова восстанавливается предыдущее значение делимого, делитель сдвигается вправо еще на один разряд и вычитается из восстановленного остатка. Проиллюстрируем сказанное на примере. Пример. Найти х=хх: х2, где делимое *i = -0,01010001; делитель х2 = +0,10010000 [Xl]np = [Х2]пр 1,01010001; = 0,10010000. Вычитание заменим сложением дополнительных кодов. Знак частного определяется сложением знаковых разрядов делимого и делителя по модулю 2, т. е. Вычитание делителя для определения возможности деления Восстановление делимого Сдвиг делителя вправо и вычитание его из делимого Сдвиг делителя вправо и вычитание его из остатка Восстановление предыдущего остатка 1+0=1 0,01010001 1,01110000 1,11000001ч 0,10010000 0,01010001 1,10111000 0,0000100b 1,11011100 1,11100101ч 0,00100100 0,10010000 1,1001 . . . Частное -Остаток<0, деление возможно -Остаток>0, в частное записывается 1 -Остаток<0, в частное записывается 0 Сдвиг делителя и вычита-. ние его из остатка Восстановление предыдущего остатка Сдвиг делителя и вычитание его из остатка ,0,00001001 +1, 11101110 ,1,11110111- TQ,00010010 ,0,00001001 П, 11110111 0,00000000ч -Остаток<0, в частное записывается 0 -Остаток=0, в частное записывается 1 Второй способ деления отличается от рассмотренного тем, что при получении отрицательного остатка после вычитания делителя не производится восстановление предыдущего значения остатка. Определение разрядов частного начинается с того, что к разности делимого и делителя прибавляется делитель, сдвинутый на один разряд вправо. Если знак первого остатка положительный, то в старший разряд частного записывается 1; если - отрицательный, записывается О. Для получения второго разряда частного необходимо делитель, сдвинутый на один разряд вправо, вычесть из остатка (если знак остатка положительный) или прибавить к остатку (если знак остатка отрицательный). По знаку нового остатка определяется второй разряд частного и т. д. сравнению с предыдущим способом обладает большей одинаковостью действий и требует меньше времени для выполнения всей операции. Выполнение сложения и вычитания в машинах с плавающей запятой. Сложение чисел в машине с плавающей запятой сводится к выравниванию порядков и сложению цифровых частей. Поскольку цифровые части по модулю меньше 1, сложение их выполняется по тем же * правилам, что и сложение в машинах с фиксированной запятой. При сложении чисел в машинах с плавающей запятой возможны следующие случаи: 1. Порядки слагаемых одинаковы: А - 2тХ; Вычитание делителя Сдвиг делителя вправо и прибавление его к остатку Сдвиг делителя и вычитание его из остатка Сдвиг делителя и вычитание его из остатка Сдвиг делителя и прибавление его к остатку +°г 10101001 ,00110000 В - 2ту. 0,11010000 1,1101 Частное 1,1101100Ь 0,01101000 -Остаток<0, деление возможно , 0,01000001 -+1,11001100 -Остаток>0, сывается 1 в частное запи- о.оооопоь 1,11100110 1,1111001Ь 0,00001101 0,00000000ч -Остаток>0, в частное записывается 1 -Остаток<0, в частное записывается 0 - Остаток=0, в частное записывается 1 Процесс повторяется до получения требуемого количества разрядов частного. В рассмотренное схеме деления двоичных чисел вместо сдвига делителя вправо можно сдвигать остаток влево на один разряд при каждом шаге деления. Пример. Найти x=xt: х2, где делимое xi = -0,10101001 [лчЬр = 1,10101001; делитель х2 = +0,11010000 [х2]пр = 0,11010000. Вычитание заменяем сложением дополнительных кодов. Знак частного определяется сложением знаковых разрядов делимого и делителя по модулю, два: [1+0] mod 2=1. Этот способ деления называют делением без восстановления остатка . Способ деления без восстановлений остатка по 21-1248 Тогда А + В = 2т(х + у). Прн этом цифровые части складываются 2. Порядки слагаемых разные: А = 2 >x; В = 2*у, где m>q, А>В. В этом случае перед сложением цифровых частей производится выравнивание порядков, состоящее в том, что порядок меньшего числа увеличивается на разность порядков, а мантисса меньшего числа уменьшается путем сдвига вправо на число разрядов, равное разности порядков Пример. А =25-0,100101 В =23-0,101001 т - 5; <? = 3 m - q - 2 Сдвинем мантиссу числа в на два разряда вправо и увеличим порядок на 2. Получим: в = 25-0,00101001. Если для представления мантиссы и ее знака в машине отведено семь двоичных разрядов, то в нашем случае после сдвига мантиссы числа в будет иметь место потеря двух младших разрядов. Число в при этом округляется: в = 2s-0,001010; а + в == 25(0,100101 + 0,001010) = . = 25 -0,101111. Вычитание чисел после выравнивания порядков выполняется в обратном или дополнительном коде так же, как и в машинах с фиксированной запятой.. Если при сложении мантисс двух чисел х и у получена сумма х+>1, то говорят, что произошло нарушение нормализа- то ре- ции влево. Если же x+i/< зультат получен с нарушением нормализации вправо. Нарушение нормализации влево в машинах с плавающей запятой означает выход старшего разряда мантиссы в разряд знака, что аналогично переполнению в машинах с фиксированной занятой. Нарушение нормализации вправо в машинах с плавающей запятой означает появление нуля в первом разряде после запятой. Так как нарушение нормализации влево аналогично переполнению в машинах с фиксированной запятой, то признаком нарушения нормализации влево могут служить те же признаки, что и при переполнении в машинах с фиксированной запятой. В этом случае также удобно пользоваться представлением мантисс в машинах с плавающей запятой в модифицированном обратном или дополнительном коде. Признаком нарушения нормализации вправо служит появление одинаковых цифр 0,0 илн 1,1 в соседних двух разрядах: в первом разряде перед запятой и в первом разряде после запятой. При нарушении нормализации влево в машине автоматически сдвигается мантисса и ее знак вправо на один разряд, порядок увеличивается на единицу, а в старшем знаковом разряде сохраняется та цифра, которая стояла до выполнения нормализации (сдвига) вправо. Пример. 1. Сложить числа +23 0,10101 и +23-0,100011. При сложении мантисс имеем: ,00,10101 ОО, 10001 01,00110 Получение пары цифр 01 в разрядах знака указывает на нарушение нормализации влево. Сдвинем вправо на один разряд полученный код и сохраним в старшем разряде знака цифру 0, получим мантиссу вида 00,10011. Сумма с учетом коррекции порядка будет равна +24-0,10011. 2. Сложить числа -23 -23-0,10001. Сложим мантиссы в обратном рованном коде: ,11,01010 41,01110 110,11000 0,10101 и модифици- ► 1 10,11001 Выполнение нормализации осуществляется путем сдвига полученного результата на одни разряд вправо и прибавления единицы к порядку суммы. При этом в старшем разряде знака сохраняется единица. После сдвига вправо на один разряд получим сумму в обратном коде 11,01100, который является изображением числа -0,10011. - Сумма двух чисел равна -24-0,10011. В дополнительном модифицированном коде: 11,01011 11,01111 110,11010 -10,ною отбросить После нормализации получим код 11,01101, являющийся изображением числа -0,10011. Сумма двух чисел равна -24 0,10011. При сложении чисел с разными знаками. может произойти нарушение нормализации вправо. В этом случае машина автоматически выполняет нормализацию влево. Нормализация влево на один разряд состоит в сдвиге мантиссы влево и в уменьшении порядка на 1. Пример. Найти сумму чисел +2*-0,11Ю1 и -24- 0,10010 1. В обратном коде: порядок 0-100 0-100 знак порядка 00,11101 11,01101 100,01010 +1--1 циклический перенос 00,01011 признак нарушения нормализации вправо
|
© 2010 KinteRun.ru автоматическая электрика
Копирование материалов разрешено при наличии активной ссылки. |