Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Робочий зошит (3 розділи неповна).docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.48 Mб
Скачать

Кодування знаків і від’ємних чисел

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

Слід зазначити, що для додатних чисел всі три коди є однаковими.

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

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

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

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

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

Для того, щоб цифрові схеми могли зафіксувати та відстежити переповнення розрядної сітки, вводиться поняття модифікованих кодів. Ці коди відрізняються від простих машинних кодів тим, що на зображення знаку відводиться два розряди: “+” - зображується “00”, а “-“ - зображується “11”. Перетворення двійкових чисел у модифіковані прямий, обернений та додатковий коди виконуються за правилами, які були розглянуті раніше.

Поява в знакових розрядах модифікованого коду різних цифр “01” або “10” свідчать про переповнення розрядної сітки. “01” – відповідає переповненню додатного числа, “10” – відповідає переповненню від’ємного числа

Подання від'ємного числа -10910= - 11011012 у прямому коді та його перетворення в обернені і додатковий коди представлено нижче.

Простий машинний код

Модифікований машинний код

Прямий код

1.

1

1

0

1

1

0

1

Прямий код

1

1.

1

1

0

1

1

0

1

Інверсія бітів

Інверсія бітів

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

1.

0

0

1

0

0

1

0

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

1

1.

0

0

1

0

0

1

0

Додавання 1 до молодшого розряду

Додавання 1 до

молодшого розряду

Додатковий код

1.

0

0

1

0

0

1

1

Додатковий код

1

1.

0

0

1

0

0

1

1

Представимо у модифікованих машинних кодах число ±1710 = ________________ 2

+1710

-1710

Прямий код

Прямий код

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

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

Додатковий код

Додатковий код

Представимо у модифікованих машинних кодах число ±2910 = ________________ 2

+1710

-1710

Прямий код

Прямий код

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

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

Додатковий код

Додатковий код