Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МП Арифм в кодах ЕОМ.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
422 Кб
Скачать
☆

Коди цілих двійкових чисел в еом

Для того, щоб простіше, і, отже, економічніше реалізувати пристрій|устрій| АЛУ застосовують декілька різних кодів чисел. Це пов'язано з тим, що різні операції в ЕОМ простіше реалізуються в різних кодах.

При виконанні арифметичних операцій в ЕОМ застосовують прямий, зворотний і додатковий коди.

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

Додатні числа в прямому, зворотному і додатковому кодах зображуються однаково — двійковими кодами з цифрою 0 в знаковому розряді.

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

      1. Прямий код. У знаковий розряд поміщається цифра 1, а в розряди цифрової частини числа — двійковий код його абсолютної величини.

Наприклад: число -10010002

1

1

0

0

1

0

0

0

\ знак числа -


      1. Зворотний код утворюють інвертуванням (нулі замінюються одиницями, а одиниці — нулями) всіх цифр двійкового коду абсолютної величини числа (не враховуючи знаковий розряд), розряд знаку – завжди 1.

Наприклад: число -10010002

1

0

1

1

0

1

1

1

Прямий код

\ знак числа -

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

інверсія

\ знак числа -


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.

╚═···