Арифметичні основи цифрової техніки (Глава 1 навчального посібника), страница 7

                                         Таблиця 1.5

X10

Xпр

Xоб

Xдоп

+7

0.111

0.111

0.111

+1

0.001

0.001

0.001

+0

0.000

0.000

0.000

-0

1.000

1.111

-1

1.001

1.110

1.111

-2

1.010

1.101

1.110

-3

1.011

1.100

1.101

-4

1.100

1.011

1.100

-5

1.101

1.010

1.011

-6

1.110

1.001

1.010

-7

1.111

1.000

1.001

-8

-

-

1.000

Не важко переконатись, що після інвертування одиниці з нулями в кінці числа ...10002 маємо ...0111, а після додавання одиниці до молодшого розряду знов отримуємо в кінці доповняльного коду ...1000. Тобто практично для утворення доповняльного коду від'ємного числа ручним способом розглядаємо прямий код від кінця ліворуч (стрілка на рис. 1.6) і лишаємо незмінними всі нулі та першу одиницю, а решту розрядів до розділової крапки інвертуємо. Так само від доповняльного коду переходимо до прямого.

Приклади. 1) X=+10112; Xдоп=0.1011; 2) X=-10112; Xдоп=1.0101; перевірка:     |Xдоп|=24-|X|=24-1110=510.

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

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

1.3.3. Складені двійково-десяткові коди

Із складених набули поширення лише двійково-десяткові коди (ДДК), у них кожна десяткова цифра кодується певним набором двійкових цифр. Це полегшує сполучення з ЕОМ, зокрема, під час введення чисел натисненням на клавішу одразу формується набір нулів та одиниць, які сприймаються ЕОМ, тобто спрощується завантаження даних до ЕОМ у зручній для людини десятковій системі. Якщо завантажені числа використовуються далі  для  виконання арифметичних операцій, то необхідно перетворити їх у двійкову СЧ або обчислення виконувати безпосередньо в ДДК.

Перший варіант у багатьох випадках є неприйнятний, бо коли виконуються прості арифметичні дії над великими масивами чисел, як, наприклад, в обліковій справі, більша частина машинного часу витрачатиметься на непродуктивні операції перетворення  чисел. У другому варіанті використання ДДК з метою спростити  виконання арифметичних дій, полегшити декодування, підвищити продуктивність тощо спосіб кодування в ДДК має задовольняти деякі умови. Головними з них є такі: впорядкованість (більшим десятковим цифрам відповідають більші двійкові числа, що утворюють коди, парні цифри – парним двійковим числам), зваженість (кожний розряд коду, як і в двійковій системі, має свою вагу), однозначність (кожній десятковій цифрі відповідає своє двійкове число), самодоповняльність (заступлення в коді кожної цифри нулів одиницями та навпаки утворює нову цифру, що є доповненням вихідної до 9). Аби задовольнити ці умови чи, принаймні, головні з них, залежно від мети застосовують різні способи кодування.