Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

Старорусский метод удвоения-деления пополам



Алгоритмсостоит в удвоении на каждом шаге множимого путём сдвигаего на один двоичный разряд влево и делении пополам множителя сдвигом на один двоичный разряд вправо. Алгоритм повторяют до тех пор, пока множитель не станет равным нулю.

Операнды представлены в коде с естественными весами 8-4-2-1 и при сдвигах как влево, так и вправо необходима коррекция.

Сдвиг влево требует такой же коррекции, как и при алгебраическом сложении: для «неправильных» тетрад и для тетрад, из которых сформировались единицы переноса, нужна коррекция кодом +610=01102.

Сдвиг вправо требует коррекции кодом -310=11012 для тетрад, в которые сформировались единицы переноса. Этот корректирующий код образуется как разность между результатом деления пополам 16-ти и нужным результатом деления пополам 10-ти: 8-5=3. Эту разность надо вычесть из тетрад, в которые сформировались единицы переноса.

Основной недостаток метода – невысокое быстродействие из-за множества коррекций.

Пример.

Перемножить десятичные числа 43*38, считая число 43 множителем, и использовать для кодирования десятичных цифр код с естественными весами 8-4-2-1 и старорусский метод умножения.

4310=1010112=0100.0011.2-10; 3810=0011.1000.2-10

В соответствии с алгоритмом множимое должно сдвигаться влево, поэтому регистр множимого должен иметь дополнительные разряды. Кроме того, операнды положительные – опускаем операцию со знаками.

Множитель Множимое Сумма частичных произведений
0100.0011. 0000.0000.0011.1000. .0000.0000.0011.1000.
0010.0001 0000.0000.0111.0000. .0110. 0000.0000.0111.0110. .0000.0000.0011.1000. 0000.0000.0111.0110. 0000.0000.1010.1110. .0110.0110.-коррекция0000.0001.0001.0100.
0001.0000. 0000.0000.1110.1100. .0110.0110. 0000.0001.0101.0010.  
0000.1000. .1101. 0000.0101. 0000.0010.1010.0100. .0110.____ 0000.0011.0000.0100. 0000.0001.0001.0100. 0000.0011.0000.0100. 0000.0100.0001.1000.
0000.0010. 0000.0110.0000.1000.  
0000.0001. 0000.1100.0001.0000. .0110. .0110. 0001.0010.0001.0110. 0000.0100.0001.1000. 0001.0010.0001.0110. 0001.0110.0010.1110. .0110.-коррекция 0001.0110.0011.0100.
0000.0000.   1 6 3 4

 

 

Примечание.

Цифры в младшем разряде множителя после очередного сдвига и коррекции, взятые в обратном порядке, образуют представление множителя в двоичной системе счисления (в таблице эти цифры выделены жирным шрифтом и подчёркнуты). Этот способ можно использовать для перевода чисел из двоично-десятичной системы счисления в двоичную систему счисления: 4310=01010112.

 

Десятично-двоичный метод умножения

 

Метод основан на преобразовании множителя, представленного в коде с естественными весами 8-4-2-1, в сумму произведений степени двойки на десятичные числа, содержащих лишь две цифры: 0 и 1. Причём, количество слагаемых в сумме – не более четырёх в связи с тем, что в двоичной тетраде четыре разряда.

Умножая множимое на преобразованный таким образом множитель, получают полное произведение в виде суммы четырёх частичных произведений. В соответствии с преобразованным множителем каждое частичное произведение получают сдвигом множимого на требуемое количество десятичных разрядов (тетрад) с введением коррекции, а затем результат умножается на степень двойки путём сдвига влево на один двоичный разряд с введением коррекции.

Пример.

 

Выполнить умножение десятично-двоичным методом чисел 746 и 238, считая число 746 множителем.

Сначала преобразуется множитель:

 

74610=.0111.0100.0110.2-10=

= (0*23 +1*22 +1*21 +1*20)*102+

+(0*23 +1*22 +0*21 +0*20)*101+

+(0*23 +1*22 +1*21 +0*20)*100=

= 000*23 +111*22 +101*21 +100*20

 

Проверим правильность преобразования множителя:

111*4+101*2+100=444+202+100=746

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

Множимое М=23810 =0010.0011.1000.2-10 представлено в коде с естественными весами 8-4-2-1 и так как в процессе выполнения алгоритма его надо будет сдвигать влево, предусмотрены дополнительные разряды в регистре множимого и в регистре суммы частичных произведений.

 

 

Таблица

Слага- емые   Формирование слагаемых и полного произведения
111*22 М= 10*М=     11*М= 100*М=   111*М*21=     111*М*22= .0000.0000.0000.0010.0011.1000. .0000.0000.0010.0011.1000.0000. .0000.0000.0010.0101.1011.1000. .0110. . .0000.0000.0010.0110.0001.1000. .0000.0010.0011.1000.0000.0000. .0000.0010.0101.1110.0001.1000. .0110. . .0000.0010.0110.0100.0001.1000. .0000.0100.1100.1000.0011.0000. .0110. .0110. .0000.0101.0010.1000.0011.0110. .0000.1010.0101.0000.0110.1100. .0110. .0110. .0110. .0001.0000.0101.0110.0111.0010.
101*21 М= 100*М=     101*М=     101*М*21= .0000.0000.0000.0010.0011.1000. .0000.0010.0011.1000.0000.0000. .0000.0010.0011.1010.0011.1000. .0110. . .0000.0010.0100.0000.0011.1000. .0000.0100.1000.0000.0111.0000. .0110. .0000.0100.1000.0000.0111.0110.
100*20 100*М= .0000.0010.0011.1000.0000.0000.
  100*20= 101*21=   111*22=     .0000.0010.0011.1000.0000.0000. .0000.0100.1000.0000.0111.0110. .0000.0110.1011.1000.0111.0110. .0110. . .0000.0111.0001.1000.0111.0110. .0001.0000.0101.0110.0111.0010. .0001.0111.0110.1110.1110.1000. .0110.0110. . .0001.0111.0111.0101.0100.1000. 1 7 7 5 4 8

 

В таблице представлены этапы пошаговой реализации трёх частичных произведений с необходимыми коррекциями, а на последнем этапе – формирование полного произведения.

График выполнения курсовой работы

Содержание этапа Объем % Срок завершения (неделя)
Сложение двоичных чисел 10% 2-я неделя
Умножение двоичных чисел 20% 5-я неделя
Деление двоичных чисел 20% 8-я неделя
Сложение двоично-десятичных чисел 15% 11-я неделя
Умножение двоично-десятичных чисел 20% 13-я неделя
Оформление пояснительной записки 15% 16-я неделя

 

Защита курсовой работы не позднее 17-й недели семестра.

 




Поиск по сайту:

©2015-2020 studopedya.ru Все права принадлежат авторам размещенных материалов.