logo
Лабораторна 4_1_семестр

3.6. Двійково-десяткове кодування.

Одним із способів кодування десяткових чисел є двійково-десяткове кодування (Binary Coded Decimal, BCD), яке раніше носило назву код 1-2-4-8. Таке кодування є частковим випадком переходу між двійковою та шістнадцятковою системами числення. Сутність його полягає в заміні кожної десяткової цифри двійковою тетрадою, яка відповідає їй в прямому коді.:

259,47d = 0010 0101 1001,0100 0111bcd.

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

Над числами, записаними в двійково-десятковому коді арифметичні дії здійснюються за дещо складнішими правилами, оскільки, наприклад в десятковій системі 5d + 8d = 13d, а здійснивши додавання в двійковій системі над двійково-десятковими числами 0101bcd + 1000bcd  отримаємо значення 1101b, яке в двійково-десятковій системі не відповідає жодній десятковій цифрі.

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

Другий недолік полягає в тому, що двійково-десяткове кодування не є економічним, тобто використовує надлишкові двійкові розряди. Наприклад, для кодування чисел від 0 до 999d необхідно 12 двійково-десяткових розрядів, тоді як для звичайного (прямого) двійкового коду достатньо 10-ти розрядів з надлишком: 11 1110 0111b = 999d, а розряди від 11 1110 1000b (1000d) до 11 1111 1111b (1023d) є надлишковими.

Надлишковість двійково-десяткового коду не залежить від кількості десяткових розрядів k, і може бути обчислена враховуючи, що для представлення одного десяткового розряду необхідно приблизно 3,32 двійкових розряди (точно log210) (Лабораторна робота №3, (3.12)). Надлишковість двійково-десяткового коду становить:

, (4.9)

З іншої сторони ефективність використання кодових комбінацій двійково-десяткового коду залежить від кількості розрядів і становить:

, (4.10)

де k - кількість десяткових розрядів.

Таблиця 4.2.

кількість десят-кових розрядів k,

1

2

3

4

5

6

ефективність вико-ристання кодових комбінацій, %

62,5

≈ 39,1

≈ 24,4

≈ 15,3

≈ 9,5

≈ 6,0

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