Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторна робота 1-4 та 1-5.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
128 Кб
Скачать

Лабораторна робота 1.4 Кодування чисел (прямий, зворотній, додатковий).

Мета лабораторної роботи – ознайомитись з методами кодування чисел, отримати і закріпити практичні навички з побудови алгоритмів і програм.

Короткі теоретичні відомості

Необхідність кодування чисел визначається тим, що в ЕОМ неможлво або нераціонально вводити числа у тому вигляді, в якому вони зображуються людиною на папері.

При обчисленні ЕОМ оперує як з додатніми, так і з від’ємними числами. При цьому обчислення можна замінити додаванням, скориставшись доповненням від’ємного числа. Доповненням числа 12510 буде число *7510, числа 12516 буде число ЕDВ16, для числа 11012 - число 112. Ці доповнення отримують наступним чином:

_1*0010            _100016            _10000*

12510                12516                1*01*

87510               EDB16                   112

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

Прямой код співпадає з записом самого числа. У знаковому розряді записується 0 (знак +) або 1 (знак-), а потім записується саме число.

Наприклад, числа: А1=+*,10*0 и А2= - *,10*0 у прямому коді записуюься у вигляді: [А1]пр=0 1010 і [А2]пр=1 1*10.

Приклад: В* = +0,1*1001                 [В*]пр.= 0 *0*001;

В2 = - 0,*1101                  [В2]пр.= 1 *1101.

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

Наприклад, числа А1=+0,1010 та А2= - 0,101* у зворотньому коді записуються у вигляді [А1]обр.=0 101* і [А2]обр.=1 0101.

Приклад: В1 = +0,101100                 [В1]зв.= 0 101110;

В2 = - 0,010101                [В2]зв.= 1 1*1*1*.

Додатковий код від’ємного числа отримується додаванням одиниці молодшому розряду зворотнього коду цього числа.

Наприклад: числа А1=+0,1010 та А2= - 0,101* у додатковому коді записуються у вигляді: [А1]дод.=* 101* та [А*]дод.=1 0*10.

Приклад: В1 = +0,00110                   [В1]дод.= 0 0*110;

В2 = - 0,00*101                [В2]дод.= 1 110011.

Модифікований код відрізняється тим, що на зображення знака числа у ньому відводиться два розряди, що дає можливість виявити переповнення розрядної сітки.

Наприклад, для числа А= - 0,101* отримаємо [А]мзв.=11 *101, [А]мдод.=11 0110.

Перехід від зворотнього та додаткового кодів до прямого здійснюється аналогічно переходу від прямого коду до зворотнього і додатковому.

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

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

1) а=0,10*0>0                          [а]зв.=0 1010

b=0,0010>0                          [в]зв.=0 0010

[х]зв.=0 1100

х= 0,1100

2) а= - *,1010<0

b= 0,1100>0

3) а=0,*010>*

b= - 0,0010<0

*) a= - 0,1010<0

b= - 0,0010<0

[а]зв.=1 0101

[в]зв.=0 1100

10 0001

[х]зв.=0 001*

х= 0,0010

[а]зв.= 0 1010

[в]зв.= * 1101

10 011*

[х]зв.= 0 100*

х= 0,1000

[a]зв.=1 0101 [b]зв.=* 1101

11 00*0

[*]зв.=* 0011

*= - 0,1100

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

Приклад:

*= - 0,*01*<0 b= - 0,0010<0

[a]дод.=1 0110 [b]дод.=1 1*10

11 01*0

[х]дод.=1 010* [х]зв.=1 *0*1

х= - *,1100

Наприклад, маємо число А1 = 0,10*112 та А2 = 0,01*2. Потрібно виконати дію А1-А2

_0,10111

0,01*00

0,01011

Замінимо операцію відніманя додаванням. Для цього виконаємо кодування: отримаємо зворотній та додатковий коди для чисел А1 та А2.

[A*]зв.= * 10111               [A2]зв.= * 1001*

[A*]зв.= 0 *0*1*                [*2]дод.= 1 1*100

Виконаємо операцію додавання отриманих кодів

+ [A1]зв.= * 10111

[A*]зв.= 1 10011

10 010*0

[A1+A*]озв.= 0 01011

A1+A2 = 0,0101*

+[A1]зв.= 0 1011*

[A2]зв.= * 1010*

10 *1*11

[A*+A2]зв.= 0 01011

*1+A2 = *,0101*

ЕОМ можуть обробляти як числову, так і текстову інформацію. Текстова інформація (російські і латинські літери, розділові знаки и т.д.), як і числа, кодуються послідовністю двійкових цифр. При використанні для таких цілей 8-розрядних кодів (байтів) можна закодувати 256 різних символів (табл.1). Така система кодування носит назву КОИ-7 і принята у більшості мікроЕОМ.

Таблиця 1