
- •Методичні вказівки
- •1 Cистеми числення комп'ютерної арифметики 8
- •2 Методи переведення чисел із однієї системи числення до іншої 12
- •3 Формати представлення чисел у комп’ютері 19
- •Вимогидооформлення контрольної роботи
- •1 Cистемичислення комп'ютерної арифметики
- •1.1 Представлення чисел у позиційних системах числення
- •1.2 Вибір системи числення комп'ютера
- •2 Методи переведення чисел із однієї системи числення до іншої
- •2.1 Методи переведення цілих чисел
- •2.1.1 Переведення чисел методом підбору коефіцієнтів
- •2.1.2 Метод ділення числа на основу нової системи
- •2.1.3 Метод ділення числа на основу в будь-якому додатному степені
- •2.1.4 Метод віднімання найближчої меншої ваги степеня
- •2.2 Переведення дробової частини числа в іншу систему числення методом множення її на нову основу
- •2.3 Переведення неправильного дробу
- •2.4 Переведення чисел із шістнадцяткової і вісімкової систем у двійкову
- •3 Формати представлення чисел у комп’ютері
- •3.1 Подання чисел у форматі з фіксованою комою
- •3.2 Подання чисел у форматі з рухомою комою
- •3.3 Похибки подання чисел
- •3.3.1 Абсолютна похибка подання чиселn
- •3.3.2 Відносна похибка подання числаn
- •4Двійкова арифметика
- •4.1 Формальні правила двійкової арифметики
- •4.2 Подання від’ємних чисел
- •4.2.1 Прямий код числа
- •4.2.2 Обернений код числа
- •4.2.3 Доповняльний код числа
- •5 Додавання двійкових чисел
- •5.1 Додавання чисел, поданих у формі з фіксованою комою, на двійковому суматорі прямого коду
- •5.2 Додавання чисел на двійковому суматорі оберненого коду
- •5.3 Додавання чисел на двійковому суматорі доповняльного коду
- •6 Модифіковані бінарні коди
- •6.2 Модифіковане додавання чисел у форматі із рухомою комою (крапкою)
- •7 Складання чисел при різних значеннях порядків
- •8Множення двійкових чисел
- •8.1 Методи множення бінарних чисел
- •8.2 Множення чисел з фіксованою крапкою (комою) на дспк
- •8.3 Множення чисел з рухомою комою
- •9 Множення чисел на дсдк
- •9.1 Множення чисел на дсдк при позитивному множнику
- •9.2 Множення чисел на дсдк при негативному множнику
- •10 Ділення бінарних чисел
- •10.1 Метод ділення у бінарних чисел
- •10.2 Ділення чисел з фіксованою комою з відновленням залишку
- •11 Ділення чисел з фіксованої комою без відновлення залишку
- •11.1 Алгоритм ділення у без відновлення залишку
- •11.2 Ділення чисел з рухомою комою
- •12 Контрольне завдання
- •Література
5.2 Додавання чисел на двійковому суматорі оберненого коду
Двійковим суматором оберненого коду (ДСОК) називається суматор, що оперує числами в оберненому коді.
Структурнасхема ДСОК приведена на рис.4.2.
Рисунок 5.2 – Суматор оберненого коду
Суматор оберненого коду має:
- nсуматорів за кількістю розрядів числа;
- два суматора знакових розрядів SmSig;
- ланцюги переносу одиниці переповнення із молодших розрядів числа до старших;
- ланцюг переносу одиниці переповнення зі старшого розряду числа до знакового розряду;
- ланцюг переносу одиниці переповнення зі старшого розряду знаку, за допомогою якого вона додається до молодшого розряду числа.
Суматор оберненого коду складається з nоднорозрядних суматорів числової частини та двох розрядів знаку. Усі розряди розташовані паралельно, на входиaiтаbiза синхроімпульсом одночасно на всі розряди подаються числаAіB. За принциповою схемою усі суматори однакові. Оскільки найбільше поширення одержали комбінаційні суматори, які не мають інерції щодо затримки сигналів виходу, то майже одночасно з сигналами на вході, на виході з’являються сигнали суми розрядівci, перенос між розрядамиПіта перенос переповнення знакових розрядів до молодшого розряду числа.Основна властивість суматора оберненого коду − це наявність циклічного переносу між старшим знаковим розрядом та молодшим розрядом числа.Цією властивістю він відрізняється від суматора доповняльних кодів, у якого переповнення знакових розрядів зникає.
Для обернених суматорів розглянемо наступну теорему.
Теорема. Якщо результат суми обернених кодів від’ємний, то він поданий оберненим кодом.
При доведенні цієї теореми припускаємо, що числа представлені у формі з фіксованою комою, що знаходиться перед старшим цифровим розрядом. Це гарантує рівність коефіцієнтів формату доданків КфА=КфВ, які беруть участь у операції додавання.
Розглянемо наступні випадки.
Випадок 1.,
,
,
тобто обидва числа додатні. Тоді
,
тобто додавання здійснюється в прямих
кодах.
Приклад до випадку 1:
Додати два числа А=5 іВ=7.
Запишемо їх у двійковій системі. Оскільки обернений код додатного числа дорівнює прямому коду, то:
Щоб запобігти переповненню розрядної сітки, ми використовуємо чотири розряди мантиси і два розряди знаку (модифікований код).
Відповідь: С=1100 (12(10)).
Випадок 2.,
,
,
тут
,
,
тоді
,
тобто результат буде від’ємний і у
оберненому коді, треба перейти доСпр.шляхом інверсії розрядів числа
Приклад до випадку 2:
Додати числа А=−11 іВ=7 на ДСОК.
Переведемо числа у двійкову систему числення. Апр.=11.1011,Впр.=00.0111. Обернені коди будуть:
Аналізуємо знак результату. Знак від’ємний, отже результат поданий оберненим кодом. Треба перевести його до прямого коду. Спр.=11.0100.
Відповідь: Спр.=11.0100,C=−4(10).
Випадок 3.,
,
,
тут
.
Тоді
.
Сума
позитивна, тому права частина цього
виразу стає більше
,
що викликає появу одиниці переносу зі
знакового розряду в молодший розряд
числа (величина переносу при цьому,
дорівнює (
),
тоді
.
Результат додатний. Це і єСпр..
Приклад до випадку 3:
Додати числа А=−5 і В=7 на ДСОК.
Переводимо числа у двійкову систему числення. Апр.=11.0101,Впр.=00.0111. Аналізуємо знаки чисел:
- якщо знак 11, то до суматора число надходить в оберненому коді;
- якщо знак 00, то в прямому коді. Тоді:
Аналізуємо знак результату:
- якщо знак результату 11, то результат від’ємний і записаний в оберненому коді. Необхідно виконати переведення в прямий код.
- якщо знак результату 00, то результат додатний і поданий прямим кодом.
Відповідь: С=00.0010 (2(10)).
Випадок 4.,
,
але
.
Тут
,
.
Тоді
.
Тут з’являється одиниця перенесення,
що рівнозначно вилученню з суми
,
тобто
.
Приклад до випадку 4.
Знайти суму чисел А=−5;В=−8, використовуючи ДСОК. Запишемо числа у машинних прямих кодах.Апр.=11.0101,Впр.=11.1000. Числа від’ємні, тому переводимо їх до обернених кодів.Аоб.=11.1010,Воб.=11.0111. Складаємо на ДСОК:
Аналізуємо знак результату. Знак результату від’ємний. Це значить, що знак числа від‘ємний, а число треба перевести з оберненого коду до прямого. Спр.=11.1101.
Висновок.Теорема справедлива для всіх розглянутих випадків, навіть для тих, де виникає переповнення розрядної сітки. Це дозволяє виконувати на суматорі обернених кодів алгебраїчне додавання чисел за правилами двійкової арифметики з автоматичним визначенням знаку суми.
Сформулюємо правило алгебраїчного додавання чисел формату з фіксованою комою на ДСОК при рівних коефіцієнтах формату доданків КфА=КфВ.
Правило. При алгебраїчному додаванні чисел на суматорі обернених кодів аналізується знак кожного доданку. Якщо знак додатний, то до суматора число разом зі знаком надходить у прямому коді. Якщо знак від’ємний, то до суматора число надходить у оберненому коді. Після складання доданків аналізується знак результату. Якщо знак результату додатний, то число додатне і записано в прямому коді. Якщо знак від’ємний, то число від’ємне і подане в оберненому коді і його необхідно перевести до прямого коду.
Зауважимо, що одиниця переповнення у знаковому розряді не зникає, а завжди додається до молодшого розряду числа (якщо є дріб, то до молодшого розряду дробу).