- •Інститут менеджменту та економіки
- •Івано-Франківськ
- •Схвалено Вченою Радою Інституту менеджменту та економіки «Галицька академія» від 30 жовтня 2003р., протокол № 2 .
- •Передмова
- •1. Системи числення. Взаємнi переведення. Двiйково-десяткова система числення та ascii-коди
- •1.1.Загальнi вiдомостi пpо системи числення. Пpедставлення чисел в десятковiй та двiйковiй системах числення.
- •1.2.Взаємнi пеpетвоpення чисел в десятковiй та двiйковiй
- •1.3.Шiстнадцяткова система числення
- •1.4.Двійково-десятковi та ascii-коди
- •1.5.Завдання до гл.1.
- •2. Функції алгебри логіки. Способи завдання логiчних функцiй.
- •2.1.Табличний спосiб завдання логiчних функцiй
- •2.2.Логiчнi функцii однiєї та двох логiчних змiнних
- •2.3.Аналiтичний спосiб завдання логiчних функцiй
- •2.4.Завдання до гл.2
- •3.Закони алгебри логiки. Мiнiмiзацiя логiчних рiвнянь.
- •3.1.Закони алгебpи логiки
- •3.2.Пpиклад мiнiмiзацiї логiчних piвнянь на основi законiв
- •3.3. Пpедставлення логiчних рiвнянь каpтами Каpно
- •3.5.Завдання до гл.3
- •4.Базиси логiчних функцiй. Синтез та аналiз логiчних схем
- •4.1.Поняття базису логiчних функцiй. Пеpеведення логiчних piвнянь до piзних базисiв
- •4.2.Синтез логiчних схем
- •4.3.Аналiз логiчних схем
- •4.4.Завдання до гл.4
- •5. Особливостi виконання арифметичних операцiй додавання та вiднiмання.
- •5.1.Розpядна сiтка засобiв обчислювальної технiки
- •5.2.Беззнаковий фоpмат пpедставлення двiйкових чисел
- •5.3.Пpедставлення знакових чисел в прямих кодах
- •5.4.Пpедставлення знакових чисел в додаткових кодах
- •5.5.Завдання до гл.5.
- •6. Зсув. Алгоритми множення та дiлення
- •6.1. Множення, дiлення двiйкових чисел на 2. Операцiї логiчного та арифметичного зсуву
- •6.2. Множення, дiлення двiйкових чисел на довiльнi константи
- •6.3. Алгоритми множення двiйкових змiнних
- •6.4. Алгоритми дiлення двiйкових змiнних
- •6.5.Завдання до гл.6
- •7. Приклад рiшення завдання контрольної роботи
- •Рiшення завдання 5
- •Рiшення завдання 6
- •Комп’ютерна схемотехніка
- •Сергій Михайлович Іщеряков
- •76006, М.Івано-Франківськ, вул.Вовчинецька, 227, іме
6. Зсув. Алгоритми множення та дiлення
6.1. Множення, дiлення двiйкових чисел на 2. Операцiї логiчного та арифметичного зсуву
Проаналiзуємо результат множення на 2 беззнакового двiйкового числа, представленого згiдно правила Горнера:
Хn-1*2n-1 + Xn-2*2n-2 + ... + X1*21 + X0*20) * 2 =
Хn-1*2n + Xn-2*2n-1 + Xn-3*2n-2 + ... + X0*21 + 0*20.
Очевидно, що коефiцiєнти Хi, що множились на 2i у вихiдному множнику, у добутку знаходяться бiля степенiв 2i+1, тобто змiстились на 1 розряд влiво. Наприклад, представимо двiйковим форматом процедуру множення 86 (dec) * 2 = 172 (dec):
0 1 0 1 0 1 1 0 (bin) * 10 (bin) =
/ / / / / / / /
= 0 1 0 1 0 1 1 0 0 (bin).
Таким чином, для множення беззнакового двiйкового числа на 2 необхідно виконати двi операцiї:
зсунути всі розряди числа вліво на один розряд,
в молодший розряд добутку записати 0.
Аналогiчнi операцiї необхідно здiйснити для ділення двійкового числа на 2:
зсунути всі розряди числа вправо на один розряд,
в старший розряд частки записати 0.
Вiдмiтимо, що операція множення супроводжується збільшенням розрядності числа, а операція ділення – втратою молодших розрядів.
Процедури множення на 2 беззнакових та знакових чисел є повнiстю аналогiчними.
Приклад. Помножити на 2 беззнакове число 100 (дес.) та знакове число -100 (дес.):
01100100 - двiйкова форма вихідного числа 100 (дес.)
11001000 - зсунуте вліво число iз нулем в молодшому розрядi
( 200 дес.)
1.10011100 - додатковий код вихідного числа -100 (дес.)
1.00111000 - зсунуте вліво число iз нулем в молодшому розрядi
( додатковий код числа -200 (дес.)).
При діленнi на 2 знакових чисел також вiдбувається зсув бiтiв числа вправо, проте до старшого розряду добутку заноситься не нульовий бiт, як для беззнакових чисел, а бiт знаку числа (розширення знаку вправо).
Приклад. Поділити на 2 беззнакове число 100 (дес.) та знакове число -100 (дес.):
01100100 - двiйкова форма вихідного числа 100 (дес.)
00110010 - зсунуте вправо число iз нулем в старшому розрядi
(50 дес.).
1.10011100 - додатковий код вихідного числа -100 (дес.)
1.11001110 - зсунуте вправо число iз бiтом знаку в старшому
розрядi (додатковий код числа -50 (дес.)).
Зсув беззнакових чисел одержав назву логiчного зсуву. Зсув знакових чисел називається арифметичним зсувом. Вiдмiтимо, що логiчний та арифметичний зсуви влiво спiвпадають.
Необхідно звернути увагу на формування похибки при зсуві вправо непарних від’ємних чисел.
Якщо для парних від’ємних двійкових чисел вираз
(-2n) / 2 = - (2n/2) = - n
є вірним, то для непарних від’ємних двійкових чисел математична рівність
(-(2n-1)) / 2 = - ((2n-1)/2) = - n +1/2
не стверджується за рахунок втрати молодшого розряду при зсуві непарного числа вліво.
Наприклад, зсув вправо знакового двійкового числа 1.1010111 (-41 dec в додатковому коді) матиме результатом число 1.1101011 ( -21 dec в додатковому коді). Натомість, якщо спочатку зсунути вправо додатнє двійкове число 0.0101001 (41 dec), а в одержаному результаті змінити знак, то одержимо число 1.1101100 (-20 dec в додатковому коді).
Таким чином, зсув додатнього непарного числа вправо із подальшою зміною знаку результату призводить до формування додатньої похибки:
(-(2n-1)) / 2 = - n +1/2.
Зміна знаку додатнього діленого, яке потім зсувається вправо, формує від’ємну похибку:
(-(2n-1)) / 2 = - n - 1/2.
