Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1 (1).doc
Скачиваний:
99
Добавлен:
12.05.2015
Размер:
1 Мб
Скачать
☆

Кодування чисел

Для спрощення арифметичних операцій, числа в цифрових пристроях ЕОМ подаються спеціальними кодами - прямим, оберненим і додатковим.

Всі три способи використовують самий лівий (старший) розряд бітового набору довжини n для кодування знака числа: знак "плюс" кодується нулем, а "мінус" - одиницею. Інші n-1 розрядів (цифрова частина) використовуються для представлення абсолютної величини числа.

Додатні числа у прямому, оберненому та додатковому кодах записуються однаково - двійковим кодом числа з цифрою 0 у знаковому розряді. Наприклад, при розмірі розрядної сітки n = 8:

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

Прямий код від’ємного числа відрізняється від прямого коду додатного числа тим, що значення його знакового розряду дорівнює не 0, а 1. Наприклад, прямий код чисел -1 і -127 у 8-розрядній сітці:

У прямому коді в розрядну сітку комп'ютера можна записати наступне максимальне за абсолютним значенням число:

Хп max = 0111…1= 2n-1 -1,

де n - кількість розрядів розрядної сітки комп'ютера.

Діапазон зміни машинного представлення цілих чисел для прямого коду лежить в межах

–(2n-1 -1) < [Хп] < (2n-1 -1).

Обернений код від’ємного числа отримується із прямого коду шляхом заміни його цифр на їх доповнення до 1. Код знака зберігається без змін. Заміна цифр їх доповненням для двійкової системи співпадає з операцією інверсії, тобто у всіх розрядах нулі потрібно замінити на 1, а одиниці - на 0. Наприклад, обернений код чисел -1 і -127 у 8-розрядній сітці:

Діапазон зміни машинного представлення цілих чисел для оберненого коду: -(2n-1–1) .. 0.

Додатковий код від’ємного числа отримується із оберненого коду збільшенням на 1 його молодшого розряду. При цьому перенос із знакового розряду ігнорується. Наприклад, додатковий код чисел -1 і -127 у 8-розрядній сітці:

Діапазон зміни машинного представлення цілих чисел для додаткового коду: -2n-1 ..-1.

Додатковий код є математичним доповненням основи q:

|X| + Хд = qn ,

де |Х|- абсолютне значення числа, n - кількість розрядів у представленні числа. Відповідно додатковий код від’ємного двійкового числа Х, що зберігається в n бітах, можна визначити як 2n -|X|. По суті, додатковий код являє собою доповнення |Х| до 0: так як в n-розрядній двійковій арифметиці (двійкова запис цього числа складається з 1 і n нулів, а в n-розрядну комірку поміщаються тільки n молодших розрядів, тобто n нулів). Наприклад, при n = 8

(+1)д = 1 = 000000012 ;

(–1)д = 28 - |-1|= 256 –1 = 25510 = 111111112 ;

(–127)д = 28 - |-127|= 256 –127 = 12910 = 100000012 .

Для перевірки правильності треба скласти додатковий код з самим числом: результат повинен бути рівним 2n.

Таким чином, у системі двійкових чисел зі знаком заміна додатнього числа на рівне йому по модулю від’ємне і навпаки, від’ємного - на додатнє, здійснюється застосуванням до коду даного числа операції доповнення3. Ця властивість представлення від’ємних чисел у додаткових кодах дозволяє при виконанні арифметичних операцій взагалі відмовитися від операції віднімання, замінивши її операцією додавання з числом, що має знак, протилежний знаку від'ємника.

Саме так і виконуються арифметичні операції над числами електронними пристроями комп'ютера. Якби комп'ютер обробляв прямі коди додатних і від’ємних чисел, то при виконанні арифметичних операцій слід було б виконувати ряд додаткових дій. Наприклад, при додаванні потрібно було б перевіряти знаки обох операндів і визначати знак результату: якщо знаки однакові, то обчислюється сума операндів і їй присвоюється той же знак; якщо ж знаки різні, то з більшого по абсолютній величині числа віднімається менше і результату присвоюється знак більшого числа. Тобто, при представленні чисел лише у прямому коді, операція додавання реалізується через досить складний алгоритм. Куди простіше складати числа, якщо від’ємні числа перетворені в додатковий код.

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

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

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