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

3.1. Двійково-десяткові коди

У загальному випадку можна побудувати ЕОМ, що працює при будь-якому двійково-десятковому кодуванні, проте найкращі результати можуть бути отримані при використанні двійково-десяткових кодів (ДДК), що задовольняють умові єдності, а також що мають властивості адитивності, впорядкованості, парності, доповнюваності і зваженості.

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

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

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

Властивість парності ДДК повинна проявлятися в тому, щоб всім парним десятковим цифрам відповідали або тільки парні, або тільки непарні двійкові коди. Аналогічно всім непарним десятковим цифрам повинні відповідати або тільки непарні, або тільки парні двійкові коди. Цю властивість спрощує виконання операцій множення, ділення і округлення.

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

ДДК є зваженим, якщо кожному з розрядів двійкового представлення десяткової цифри поставлені у відповідність ваги , причому

. (1.13)

Використання зважених ДДК полегшує перевід чисел з однієї системи числення в іншу.

У табл. 5 приведені ДДК, що знайшли найбільше застосування в різних цифрових пристроях обробки даних.

Простим ДДК є так званий код 8,4,2,1, який отримується шляхом запису десяткових цифр в двійковій позиційній системі числення з природним порядком ваг. Перевід чисел з десяткової системи в двійково-десяткову в цьому випадку зводиться до заміни десяткових цифр двійковими тетрадами відповідно до табл. 5. Обернений перехід також здійснюється дуже просто: необхідне двійкове число розбивається на тетради і кожна з них замінюється її десятковим еквівалентом. ДДК 8,4,2,1 – найбільш часто використовується при кодуванні десяткових цифр в пристроях вводу/виводу і при побудові операційних пристроїв десяткової арифметики.

Код 8,4,2,1 має всі перераховані вище властивості, окрім властивості доповнюваності, що ускладнює формування переносів з молодшої тетради в старшу. Коди, що мають властивість доповнюваності, відмічені в табл. 5 зірочкою. Найбільш вживаним є код “з надлишком 3”. Для запису десяткових цифр в коді “з надлишком 3” необхідно кожну двійкову тетраду цієї цифри в коді 8,4,2,1 додати з двійковим кодом цифри 3. Перетворення цифр, заданих в ДДК “з надлишком 3”, в десяткову систему виконується також шляхом заміни тетрад їх десятковими еквівалентами. Недолік коду “з надлишком 3” – відсутність властивості зваженості.

Табл. 5

ДДК

Десяткові цифри

0

1

2

3

4

5

6

7

8

9

8,4,2,1

0000

0001

0010

0011

0100

0101

0110

0111

1000

1001

з надлишком 3 *

0011

0100

0101

0110

0111

1000

1001

1010

1011

1100

*

2,4,2,1

*

0000

0001

0010

0011

0100

1011

1100

1101

1110

1111

0000

0001

0010

0011

0100

0101

0110

0111

1110

1111

0000

0001

1000

1001

1010

0101

0110

0111

1110

1111

3,3,2,1 *

0000

0001

0010

1000

1001

0101

1010

1100

1101

1110

1111

0000

0001

0010

0100

1001

0110

1011

1101

1110

1111

0000

0001

0010

0011

0101

0110

0111

1101

1110

1111

*

4,2,2,1

0000

0001

0010

0101

0110

1001

1010

1101

1110

1111

0000

0001

0010

0011

0110

0111

1010

1011

1110

1111

5,2,1,1

0000

0001

0011

0101

0111

1000

1001

1011

1101

1111

5,4,2,1

0000

0001

0010

0011

0100

1000

1001

1010

1011

1100

незважений

0000

0001

0010

0011

0110

0111

1100

1101

1110

1111

8,4-2,-1 *

0000

0111

0110

0101

0100

1011

1010

1001

1000

1111

*

00010

00101

01000

01011

01110

10001

10100

10111

11010

11101

2 з 5

11000

00011

00101

00110

01001

01010

01100

10001

10010

10100

7,4,2,1

0000

0001

0010

0011

0100

0101

0110

1000

0111

1001

1010

Коду 2,4,2,1 властиві всі вказані раніше властивості, за винятком адитивності, оскільки старший розряд тетради цього ДДК має штучну вагу 2. Перетворення чисел з однієї системи в іншу здійснюється відповідно до табл. 5. Особливістю зважених ДДК з штучною вагою є відсутність взаємооднозначної відповідності між десятковими цифрами і їх двійковими кодами. Будь-який двійковий код відповідає одній десятковій цифрі, але десяткова цифра може бути представлена декількома двійковими кодами (див. табл. 5). Це витікає з існування багатьох розв’язків рівняння (12) відносно змінних . Для виконання ж умови єдності кодування домовляються вважати забороненими деякі, хоч і правильні, двійкові коди десяткових цифр.

Прикладами ДДК з штучним порядком ваг є також коди 3,3,2,1 і 7,4,2,1 (табл. 5). Іноді застосовують і ДДК з негативними вагами (8,4-2,-1 у табл. 5). З ДДК, в яких кожна десяткова цифра записується п'ятьма двійковими розрядами, в табл. 5 вказані коди 3а+2 і 2 з 5. Код 3а+2 отримують, записуючи в двійковій системі з природним порядком ваг число 3а+2, де а – задана десяткова цифра.

У коді 2 з 5 кожна десяткова цифра представляється п'ятьма двійковими розрядами, з яких тільки два містять одиниці. Можна вважати, що код 2 з 5 утворюється з коду 7,4,2,1 шляхом додавання справа додаткового розряду з вагою 0. У цей розряд записують таку двійкову цифру, щоб загальне число одиниць було рівне двом. Для десяткової ж цифри 0 встановлюють дві одиниці в двох старших розрядах – це єдине виключення з сформульованого вище правила.

Використовують коди 3а+2 і 2 з 5 в основному для передачі даних, оскільки вони дозволяють виявити найбільш ймовірні помилки при передачі кодів [1].

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

Завдання побудови однорозрядного двійково-десяткового суматора може вирішуватися так само, як і завдання побудови однорозрядного двійкового суматора. У разі двійково-десяткового суматора необхідно буде реалізувати п'ять функцій від дев'яти двозначних змінних - чотири змінні для кожної десяткової цифри і одна змінна – перенос з молодшого розряду. При цьому вихідні функції будуть визначені лише на 200 наборах з = 512. Можна було б записати ДДНФ цих функцій і мінімізувати їх відомими формальними методами. Проте ДДНФ в цьому випадку містили б десятки диз'юнктивних членів, що значно утрудняє мінімізацію. Крім того, внаслідок великого числа невизначених значень функції важко вирішити питання про їх раціональне довизначення.

Тому двійково-десяткові суматори будують в два етапи. На першому етапі додають двійкові коди десяткових цифр по правилу двійкової арифметики. На другому етапі проводять корекцію результатів шляхом збільшення або віднімання деякої поправки, величина якої пов'язана з величиною некоректованого результату, отриманого на першому етапі. Розглянемо три приклади проектування однорозрядного двійково-десяткового суматора, зважаючи на дві обставини: перше – ДДК суми і ДДК доданків повинен бути одним і тим же; друге - двійково-десятковий суматор повинен формувати десятковий перенос, тобто перенос з вагою 10.

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