- •Пояснювальна записка
- •Форми подання цілих двійкових чисел в еом
- •Коди цілих двійкових чисел в еом
- •Модифіковані зворотний і додатковий коди.
- •Для самостійної роботи
- •Подання чисел в еом із фіксованою комою
- •Подання чисел в еом із плаваючою комою
- •Рекомендована література:
- •Стрыгин в.В., Щарев л.С. Основы вычислительной микропроцессорной техники и программирования: Учеб. Для вузов. – м.: Высш. Шк., 1989. – 479с.
- •Добуток
- •Для самостійної роботи
Коди цілих двійкових чисел в еом
Для того, щоб простіше, і, отже, економічніше реалізувати пристрій|устрій| АЛУ застосовують декілька різних кодів чисел. Це пов'язано з тим, що різні операції в ЕОМ простіше реалізуються в різних кодах.
При виконанні арифметичних операцій в ЕОМ застосовують прямий, зворотний і додатковий коди.
Останні дві форми застосовуються особливо широко, оскільки дозволяють спростити конструкцію арифметико-логічного пристрою комп'ютера шляхом заміни різноманітних арифметичних операцій операцією складання.
Додатні числа в прямому, зворотному і додатковому кодах зображуються однаково — двійковими кодами з цифрою 0 в знаковому розряді.
Від’ємні числа в прямому, зворотному і додатковому кодах мають різне зображення:
Прямий код. У знаковий розряд поміщається цифра 1, а в розряди цифрової частини числа — двійковий код його абсолютної величини.
Наприклад: число -10010002
1 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
\ знак числа - |
|||||||
Зворотний код утворюють інвертуванням (нулі замінюються одиницями, а одиниці — нулями) всіх цифр двійкового коду абсолютної величини числа (не враховуючи знаковий розряд), розряд знаку – завжди 1.
Наприклад: число -10010002
1 |
0 |
1 |
1 |
0 |
1 |
1 |
1 |
Прямий код |
\ знак числа - |
||||||||
1 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
зворотний |
\ знак числа - |
||||||||
Додатковий код утворюють додаванням одиниці до молодшого розряду зворотного коду числа.
Наприклад: число -10010002
1 |
0 |
1 |
1 |
0 |
1 |
1 |
1 |
Прямий код |
\ знак числа - |
||||||||
1 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
інверсія |
\ знак числа - |
||||||||
1 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
додати 1 |
|
\ знак числа - |
|
||||||||
Цілі числа в ЕОМ подаються в прямому коді, а від’ємні – в додактовому.
Модифіковані зворотний і додатковий коди.
При переповнюванні розрядної сітки, відбувається|походить| перенесення|перенос| одиниці в знаковий розряд. Це приводить|призводить| до неправильного результату, причому додатне число, що отримане в результаті|унаслідок| арифметичної операції може сприйматися як від’ємне|заперечне| (оскільки|тому що| в знаковому розряді "1"|) і навпаки.
У модифікованому зворотному і модифікованому додатковому кодах під знак числа відводиться|відводить| не один, а два розряди: "00" відповідає знаку "+"|, "11" - знаку "-"|. Будь-яка інша комбінація ("01" або "10"), що вийшла в знакових розрядах служить ознакою переповнювання розрядної сітки і результат вважається невірним.
1 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
Прямий код |
\ знак числа - |
||||||||
1 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
інверсія |
\ знак числа - |
||||||||
1 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
додати 1 |
|
\ знак числа - |
|
||||||||
Розглянемо приклади кодування чисел в ЕОМ.
╔═··· Приклад 1. Знайти коди чисел x=-222, y=300, а також їх суми.
x=-222=-110111102; y=300=1001011002.
-
х – прямий код,
1
0
0
0
0
0
0
0
1
1
0
1
1
1
1
0
зворотний,
1
1
1
1
1
1
1
1
0
0
1
0
0
0
0
1
додатковий
1
1
1
1
1
1
1
1
0
0
1
0
0
0
1
0
-
у – прямий код,
0
0
0
0
0
0
0
1
0
0
1
0
1
1
0
0
Щоб знайти суму х і у додамо додатковий код числа х і прямий у:
-
-222+300
0
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
Код результату в знаковому розряді має 0, тобто результат – додатне число, отже воно подане в прямому коді. Переведемо результат в десяткове число:
х+у = 10011102=64+8+4+2=78.
Перевірка: -222+300=78.
╚═···
╔═··· Приклад 2. Знайти коди чисел x=-222, y=135, а також їх суми.
x=-222=-110111102; y=135=100001112.
-
х – прямий код,
1
0
0
0
0
0
0
0
1
1
0
1
1
1
1
0
зворотний,
1
1
1
1
1
1
1
1
0
0
1
0
0
0
0
1
додатковий
1
1
1
1
1
1
1
1
0
0
1
0
0
0
1
0
-
у – прямий код,
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
1
Щоб знайти суму х і у додамо додатковий код числа х і прямий у:
-
-222+135
1
1
1
1
1
1
1
1
1
0
1
0
1
0
0
1
Одиниця, що вийшла за межі розрядної сітки ігнорується. Код результату в знаковому розряді має 1, тобто результат – від’ємне число, отже воно подане в додатковому коді. Переведемо результат в десяткове число:
-
х+у – додатковий
1
1
1
1
1
1
1
1
1
0
1
0
1
0
0
1
зворотний,
1
1
1
1
1
1
1
1
1
0
1
0
1
0
0
0
прямий
1
0
0
0
0
0
0
0
0
1
0
1
0
1
1
1
х+у = -10101112=-(64+16+4+2+1)=-87.
Перевірка: -222+135=-87.
╚═···
╔═··· Приклад 3. Знайти модифіковані коди чисел x=33, y=55, а також їх суми.
x=33=1000012; y=55=1101112.
-
х – прямий модифікований код,
0
0
1
0
0
0
0
1
-
у – прямий модифікований код,
0
0
1
1
0
1
1
1
Щоб знайти суму х і у додамо прямий код числа х і прямий у:
-
33+55
0
1
0
1
1
0
0
0
За рахунок переповнення розрядної сітки для зображення числа одиниця потрапила в розряд для зображення знака числа. Код знака 01 або 10 свідчить про помилку.
╚═···
╔═··· Приклад 4. Знайти модифіковані коди чисел x=-77, y=-55, а також їх суми.
x=-77=-10011012; y=-55=-1101112.
-
х – прямий код,
1
1
0
0
0
0
0
0
0
1
0
0
1
1
0
1
зворотний,
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
0
додатковий
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
-
у – прямий код,
1
1
0
0
0
0
0
0
0
0
1
1
0
1
1
1
зворотний,
1
1
1
1
1
1
1
1
1
1
0
0
1
0
0
0
додатковий
1
1
1
1
1
1
1
1
1
1
0
0
1
0
0
1
Щоб знайти суму х і у додамо додатковий код числа х і додатковий у:
-
-77-55
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
Одиниця, що вийшла за межі розрядної сітки ігнорується. Код знака свідчить про те, що результат – від’ємне число, отже воно подане в додатковому модифікованому коді. Переведемо результат в десяткове число:
-
х+у – додатковий
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
зворотний,
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
прямий
1
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
х+у = -100001002=-(128+4)=-132.
Перевірка: -77-55=-132.
╚═···
