Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
metod_lab_OFK.doc
Скачиваний:
13
Добавлен:
06.11.2018
Размер:
1.13 Mб
Скачать

1.3. Подання від’ємних чисел у комп’ютерах

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

Кодуванню числової інформації у комп’ютерах приділяється особлива увага. Це викликано декількома причинами, одна з яких – наявність знаків у числах. Основна проблема полягає у тому, що центральним складовим елементом арифметично-логічного пристрою (АЛП) є суматор, який виконує лише порозрядне додавання двох кодів із врахуванням ваги кожного з розрядів та з організацією міжрозрядних переносів. Знак числа суматор не “розуміє”, його не розрізняє і сприймає знак числа як звичайний двійковий код.

На даний час прийнято, що мінус кодується як одиниця (1), а плюс – як нуль (0).

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

1.3.1. Прямий код

Він базується на природньому поданні чисел у вигляді їх абсолютного значення з кодом відповідного знаку: плюса (0) або мінуса (1) у старшому розряді.

Формула утворення прямого коду двійкового числа А = ± 0, а1а2а3аn має вигляд

(1.3.1)

Приклад 1.3.1. 1. А = + 0,1101; Апр = 0,1101.

2. А = - 0,10101; Апр = 1 - (-0,10101) = 1 + 0,10101 = 1,10101.

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

(У цьому прикладі після коду знаку поставлено умовно кому. Насправді, у комп’ютері „фізичної” коми не може бути. Надалі, для того, щоб чітко відрізняти знак від самого числа у прикладах, ми будемо всюди ставити умовну кому).

З (1.3.1) витікає, що нуль в прямому коді може бути додатним і від’ємним:

А= +0,00 … 00; Апр= 0,00 … 00.

А= -0,00 … 00; Апр= 1,00 … 00.

У комп'ютерах інформація зберігається у запам’ятовуючих пристроях (ЗУ), у пристроях вводу і виводу завжди у прямому коді.

1.3.2. Обернений код

Обернений код від’ємного числа називають доповненням до 1. Тут так само присутній знаковий розряд (0 – це “+”, 1 – це “-”).

Формула утворення оберненого коду має вигляд

Аоб = (1.3.2)

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

Приклад 1.3.2. А = - 0,100110. Аоб = 10 + (– 0,100110) – 0,000001 = 1,011001.

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

В оберненому коді нуль зображається неоднозначно, є два подання нуля: + 0 і – 0.

А = + 0,00 … 00; Аоб = 0,00 … 00;

А = - 0,00 … 00; Аоб = 1,11 … 11;

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]