![]() Главная страница Случайная страница Разделы сайта АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Програмне моделювання машинних алгоритмів множення чисел з фіксованою крапкою
Лабораторна робота № 3
Мета роботи: Розглянути машинні алгоритми виконання операції множення над числами у форматі з фіксованою крапкою.
Теоретичні відомості: Розглянемо приклад множення двох чисел в двійковій системі:
З цього прикладу видно, що для реалізації операції множення можуть застосовуватися схеми множення із молодших розрядів або із старших розрядів, а також із зсувом часткових сум або множника. Комбінація цих параметрів множення дають 4 алгоритми множення. Нижче наведені приклади для різних схем множення. Для спрощення наведені восьми-розрядні операнди.
1. Множення з молодших розрядів другого множника та зсувом ліворуч першого множника. Перший множник подано у другому рядку. Починаючи з другого кроку цей множник зсувається ліворуч на один двійковий розряд та додається до загальної суми, якщо чергова цифра другого множника, що висувається 1, інакше нічого не додається. Результат у вигляді часткової суми подається третім рядком на кожному кроці.
Початковий стан
Перший крок
Другий крок
Третій крок
П’ятий крок
Шостий крок
Сьомий крок
Восьмий крок
Рис. 3.1 Приклад застосування схеми множення з молодших розрядів другого множника та зсувом ліворуч першого множника
На цій схемі перший рядок відповідає другому множнику, який зсувається праворуч на один розряд. Другий рядок відповідає першому множнику, який зсувається ліворуч. В третьому рядку дається часткова сума. Якщо черговий висунутий розряд другого множника – 0, то часткова сума не змінюється, якщо 1, то до часткової суми додається зсунутий другий множник. 2. Алгоритм множення із старших розрядів другого множника та зсувом першого множника праворуч при кожному кроці на один розряд. Перший множник подано другим рядком, який буде на кожному кроці зсуватися праворуч на один розряд. Другий множник подається першим рядком і до нього застосовується зсув праворуч. В третьому рядку відображується часткова сума. Забиваем Сайты В ТОП КУВАЛДОЙ - Уникальные возможности от SeoHammer
Каждая ссылка анализируется по трем пакетам оценки: SEO, Трафик и SMM.
SeoHammer делает продвижение сайта прозрачным и простым занятием.
Ссылки, вечные ссылки, статьи, упоминания, пресс-релизы - используйте по максимуму потенциал SeoHammer для продвижения вашего сайта.
Что умеет делать SeoHammer
— Продвижение в один клик, интеллектуальный подбор запросов, покупка самых лучших ссылок с высокой степенью качества у лучших бирж ссылок. — Регулярная проверка качества ссылок по более чем 100 показателям и ежедневный пересчет показателей качества проекта. — Все известные форматы ссылок: арендные ссылки, вечные ссылки, публикации (упоминания, мнения, отзывы, статьи, пресс-релизы). — SeoHammer покажет, где рост или падение, а также запросы, на которые нужно обратить внимание. SeoHammer еще предоставляет технологию Буст, она ускоряет продвижение в десятки раз, а первые результаты появляются уже в течение первых 7 дней. Зарегистрироваться и Начать продвижение
Початковий стан
Перший крок
Другий крок
Третій крок
Четвертий крок
П’ятий крок
Шостий крок Сьомий крок
Восьмий крок
Рис. 3.2 Приклад застосування схеми множення із старших розрядів другого множника та зсувом першого множника праворуч при кожному кроці на один розряд
За цією схемою множення множник, що подається на схемі першим рядком, зсувається ліворуч на один двійковий розряд на кожному кроці. Другий множник при цьому зсувається праворуч на один двійковий розряд та додається до загальної суми, де накопичується результат, якщо чергова цифра першого множника, що аналізується при зсуві 1, інакше результат не змінюється.
3. Множення з молодших розрядів другого множника із зсувом часткових сум праворуч. Перший множник подається в кожному кроці другим рядком у положенні, як при множенні на старшу цифру другого множника. Другий множник подано в першому рядку. На кожному кроці при його зсуві праворуч показується чергова двійкова цифра. Часткова сума у третьому рядку перед виконанням попередньо зсувається праворуч на один розряд. На першому кроці праворуч зсувається початкове нульове значення цієї суми.
Початковий стан
Перший крок
Другий крок
Третій крок
Четвертий крок
П’ятий крок
Шостий крок
Сьомий крок
Восьмий крок
Рис. 3.3 Приклад застосування схеми множення з молодших розрядів другого множника із зсувом часткових сум праворуч
4. Множення із старших розрядів другого множника із зсувом часткової суми ліворуч. За цим алгоритмом на кожному кроці здійснюється зсув множника на один розряд ліворуч та додавання до загальної суми, якщо чергова висунута двійкова цифра – 1, інакше нічого не додається. Часткова сума, що подана третім рядком зсувається на кожному кроці на один розряд ліворуч. Перший раз зсувається нульове значення.
Початковий стан Перший крок
Другий крок
Третій крок
Четвертий крок
П’ятий крок
Шостий крок
Сьомий крок
Восьмий крок
Рис. 3.4 Приклад застосування схеми множення з молодших розрядів другого множника із зсувом часткових сум ліворуч
Як бачимо з наведених на рисунках прикладів, всі перелічені алгоритми дають однаковий результат. Сервис онлайн-записи на собственном Telegram-боте
Попробуйте сервис онлайн-записи VisitTime на основе вашего собственного Telegram-бота:— Разгрузит мастера, специалиста или компанию; — Позволит гибко управлять расписанием и загрузкой; — Разошлет оповещения о новых услугах или акциях; — Позволит принять оплату на карту/кошелек/счет; — Позволит записываться на групповые и персональные посещения; — Поможет получить от клиента отзывы о визите к вам; — Включает в себя сервис чаевых. Для новых пользователей первый месяц бесплатно. Зарегистрироваться в сервисе Окремим зауваженням можна вказати те, що при розрядності операндів n, розрядність результату є 2n. Множення чисел з фіксованою крапкою у прямому коді відбувається шляхом окремого виконання операцій для числових розрядів та для знакових. Множення числових розрядів відбувається за однією з вищеописаних схем, а для визначення знаку добутку відбувається додавання по модулю 2 знакових розрядів операндів множення. Множення чисел з фіксованою крапкою у додатковому коді має свої особливості оскільки в даному випадку знакові розряди обробляються разом з числовими. Результат множення за будь-якою з вищеописаних схем буде не відповідати додатковому коду добутку, тому його будемо вважати псевдодобутком. Для отримання справжнього добутку потрібно виконати корекцію псевдодобутку. Маємо чотири варіанти множення чисел в додатковому коді: 1. Перший операнд (X) і другий операнд (Y) більші від нуля. В такому випадку множення відбувається звичайним чином за однією з схем. 2. X > 0, Y < 0, в такому випадку до псевдодобутку потрібно додати додатковий код числа -2X. 3. X < 0, Y > 0, в такому випадку до псевдодобутку потрібно додати додатковий код числа -2Y. 4. X < 0, Y < 0, в такому випадку до псевдодобутку потрібно додати додатковий код числа 2(|X| + |Y|).
Завдання на виконання лабораторної роботи. 1) Обрати свій номер варіанта згідно з останньою цифрою у номері залікової книжки (цифра „0” відповідає десятому варіантові). 2) Створити блок-схему алгоритму машинного множення чисел з фіксованою крапкою згідно варіанту. 3) Проаналізувати текст паскаль-програми у файлі lab3_var_”N”.pas (де „N” – номер варіанту) і визначити її призначення. 4) Скомпілювати програму та запустити на виконання. 5) Підставити власні вхідні значення та проаналізувати результати роботи програми. 6) Оформити звіт та подати його викладачу разом з результатами виконання роботи.
|