Реклама
Реклама
Реклама

НОУ ІНТУЇТ | лекція | Інформаційно-логічні основи ЕОМ

  1. машинні коди Прямий код двійкового числа утворюється з абсолютного значення цього числа і коду знака...

машинні коди

Прямий код двійкового числа утворюється з абсолютного значення цього числа і коду знака (нуль або одиниця) перед його старшим числовим розрядом.

Приклад 14.5.

Точкової вертикальною лінією тут відзначена умовна межа, яка відокремлює знак від цифрових розрядів.

Зворотний код двійкового числа утворюється за наступним правилом. Зворотний код позитивних чисел збігається з їх прямим кодом. Зворотний код негативного числа містить одиницю в знаковому розряді числа, а значущі розряди числа замінюються інверсними, тобто нулі замінюються одиницями, а одиниці - нулями.

Приклад 14.6.

6

Свою назву зворотний код чисел отримав тому, що коди цифр негативного числа замінені інверсними. Зазначимо найбільш важливі властивості зворотного коду чисел:

Додатковий код позитивних чисел збігається з їх прямим кодом. Додатковий код негативного числа є результат підсумовування зворотного коду числа з одиницею молодшого розряду ( Додатковий код позитивних чисел збігається з їх прямим кодом - для цілих чисел, - для дрібних).

Приклад 14.7.

7

Зазначимо основні властивості додаткового коду.

  • Додавання додаткових кодів позитивного числа Додавання додаткових кодів позитивного числа   з його негативним значенням дає так звану машинну одиницю додаткового коду: з його негативним значенням дає так звану машинну одиницю додаткового коду:

    Додавання додаткових кодів позитивного числа   з його негативним значенням дає так звану машинну одиницю додаткового коду:

    т. е. число 10 (два) в знакових розрядах числа.

  • Додатковий код отримав таке свою назву тому, що уявлення негативних чисел є доповненням прямого коду чисел до машинної одиниці .
  • Нуль в додатковому коді має єдине подання. Завдяки цьому всі сучасні комп'ютери використовують при зберіганні і перетворенні чисел саме двійкового коду.

Модифіковані зворотні і додаткові коди двійкових чисел відрізняються відповідно від зворотних і додаткових кодів подвоєнням значень знакових розрядів. Знак "+" в цих кодах кодується двома нульовими знаковими розрядами, а "-" - двома одиничними розрядами.

Приклад 14.8.

Метою введення модифікованих кодів є фіксація і виявлення випадків отримання неправильного результату, коли значення результату перевищує максимально можливий результат в відведеної розрядної сітці машини. В цьому випадку перенесення з значущого розряду може спотворити значення молодшого знакового розряду. Значення знакових розрядів "01" свідчить про позитивний переповненні розрядної сітки, а "10" - про негативний переповненні. В даний час практично у всіх моделях ЕОМ, в тому числі у всіх ПК, роль подвоєних розрядів для фіксації переповнення розрядної сітки грають переноси, що йдуть в знаковий і з знакового розряду.

Арифметичні операції над числами з фіксованою точкою

Додавання (віднімання). Операція віднімання приводиться до операції додавання шляхом перетворення чисел в зворотний (ОК) або додатковий (ДК) код. нехай числа Додавання (віднімання) і , Тоді операція алгебраїчного додавання виконується відповідно до табл. 14.3 .

Залежності, представлені в правій частині таблиці, вказують на заміну операції віднімання операцією додавання зі зворотним або додатковим кодом відповідного числа. Додавання двійкових чисел здійснюється послідовно, поразрядно відповідно до табл. 14.2 . При виконанні додавання цифр необхідно дотримуватися таких правил.

  • Складові повинні мати однакове число розрядів. Для вирівнювання розрядної сітки доданків можна дописувати незначущі нулі зліва до цілої частини числа і незначущі нулі справа до дробової частини числа.
  • Знакові розряди чисел беруть участь у складанні так само, як і цифрові.
  • Необхідні перетворення кодів (п. 14.2) виробляються зі зміною знаків чисел. Приписані незначущі нулі змінюють своє значення при перетвореннях за загальним правилом.
  • При утворенні одиниці переносу зі старшого знакового розряду, в разі використання ОК, ця одиниця складається з молодшим числовим розрядом. При використанні ДК одиниця перенесення втрачається. Знак результату формується автоматично, результат представляється в тому коді, в якому представлені вихідні складові.

Приклад 14.9. Скласти два числа Приклад 14 .

Скласти два числа

Вихідні числа мають різну розрядність, і необхідно провести вирівнювання розрядної сітки:

Вихідні числа мають різну розрядність, і необхідно провести вирівнювання розрядної сітки:

Додавання в зворотному або додатковому кодах дає один і той же результат:

Додавання в зворотному або додатковому кодах дає один і той же результат:

Звернемо увагу, що при додаванні цифр відсутні переноси в знаковий розряд і з знакового розряду, що свідчить про отримання правильного результату.

Приклад 14.10. Скласти два числа Приклад 14 в ОК і ДК. Відповідно до табл. 14.3 повинна бути реалізована залежність , В якій другий член перетворюється з урахуванням знака

При додаванні чисел в ОК і ДК були отримані переноси в знаковий розряд і з знакового розряду. У разі ОК перенесення з знакового розряду вимагає додаткового збільшення одиниці молодшого розряду (див. П. 4. правил). У разі ДК цей перенос ігнорується.

Множення. Множення двійкових чисел найбільш просто реалізується в прямому коді. Розглянемо, яким чином воно приводиться до операцій додавання і зрушень.

Приклад 14.11. Помножити два числа Приклад 14 . Перемножимо ці числа, представлені прямими двійковими кодами, так само, як це робиться в десятковій системі.

Неважко бачити, що твір виходить шляхом складання приватних творів, які представляють собою розряди множимо, зрушені вліво відповідно до позицій розрядів множника. Приватні твори, отримані множенням на нуль, ігноруються. Важливою особливістю операції множення n-розрядних сомножителей є збільшення розрядності твори до Неважко бачити, що твір виходить шляхом складання приватних творів, які представляють собою розряди множимо, зрушені вліво відповідно до позицій розрядів множника . Знак твори формується шляхом складання знакових розрядів співмножників. Можливі переноси з знакового розряду ігноруються.

Розподіл. Операція ділення, як і в десятковій арифметиці, є зворотною операції множення. Покажемо, що і ця операція приводиться до послідовності операцій додавання і зсуву.

Приклад 14.12. Розділити два числа Приклад 14 .

Розподіл вироблено так само, як це робиться зазвичай в десятковій системі. Спочатку перевіряється, чи можна відняти значення дільника з старших розрядів діленого. Якщо можливо, то в розряді приватного записується одиниця і визначається приватна різниця. В іншому випадку в приватне записується нуль, і розряди подільника зсуваються вправо на один розряд по відношенню до розрядів діленого. До отриманої попередньої різниці зноситься чергова цифра діленого, і даний процес повторюється, поки не буде отримана необхідна точність. Якщо врахувати, що всі вирахування в ЕОМ замінюються складанням в ОК або в ДК (див. табл. 14.3 ), То дійсно, операція ділення приводиться до операцій додавання і зрушень вправо розрядів дільника щодо розрядів діленого. Відзначимо, що ділене перед операцією ділення має бути приведене до Розподіл вироблено так само, як це робиться зазвичай в десятковій системі -розрядної сітці. Тільки в цьому випадку при діленні на розрядний дільник виходить -розрядної приватне.

Знак приватного формується також шляхом складання знакових розрядів діленого і дільника, як це робилося при множенні.