Попередня сторінка Зміст Наступна сторінка Електронні посібники ВНТУ
1.3.4 Кодовані позиційні системи числення
В кодованих позиційних системах числення цифри однієї системи числення кодуються за допомогою цифр іншої системи числення. Число в загальному вигляді записується таким чином:
де р – основа системи числення, символами якої кодуються числа, Р – основа заданої системи числення.
При побудові кодованих позиційних систем як ваги розрядів можуть бути вибрані члени геометричної прогресії (тобто ваги однорідної позиційної системи числення), а також довільні числа. У першому випадку системи називаються кодованими системами числення з природною вагою розрядів, у другому – кодованими системами числення зі штучною вагою розрядів.
Прикладом системи числення з природною вагою розрядів може бути двійково-десяткова система (англ. Dinary Coded Decimal - BCD) з вагами 8-4-2-1. У ній кожна цифра десяткового числа кодується двійковою тетрадою (чотирма двійковими розрядами). Наприклад, десяткове число 7 у двійково-десятковій системі числення матиме такий вигляд:
Прикладом системи числення зі штучною вагою розрядів може бути двійково-десяткова система числення з вагами 2-4-2-1. Десяткове число 7 в цій системі матиме, відповідно, такий вигляд:
.
Як відомо, цей код є самодоповнюючимся, тобто в такій системі кодування десяткове число 9 кодується як 1111, що дозволяє найбільш раціонально будувати десяткові лічильники та арифметичні схеми.
Код називається самодоповнюючимся, якщо двійкові коди будь-яких двох десяткових цифр, доповнюючи одна одну до 9 (тобто якщо їх десяткова сума дорівнює 9: a'10 + а''10 = 9), доповнюють один одного до 1510 =11112 (тобто їх сума a'2 + a''2= 1111).
Ваги розрядів у коді можуть бути не тільки додатними, але і від’ємними. Наприклад, у коді 8-4-(-2)-(-1) число 7 буде записано так:
Ще одним самодоповнюючимся кодом є код 8421 плюс 3 (код з надлишком три, англ. EXCESS-3). Він отримується з природного коду 8-4-2-1 додаванням до нього числа 310 = 00112 за такою формулою:
Внаслідок такого додавання отримується система з непостійною вагою розрядів. Дійсно, наприклад, цифра 110 кодується як 01002, тобто в третьому двійковому розряді 1 має вагу одиниці. Тоді прикодуванні цифри 910 = 11002 старша двійкова цифра повинна мати вагу 8, тоді як при кодуванні цифри 510 = 10002 вона має вагу 5.
Відмітимо, що усі наведені коди є системами однорідними, оскільки в кожному двійковому розряді може бути дві цифри: 0 або 1.
В таблиці 1.3 наведені десяткові цифри, представлені в деяких двійково-десяткових кодах.
Необхідно підкреслитити, що двійково-десяткові коди мають певну надмірність, оскільки для кодування десяткових цифр використовується тільки 10 комбінацій із 16 можливих комбінацій, що може бути використано для виявлення деяких видів похибок.
Десяткова цифра |
Коди BCD |
|||||
8421 |
2421 |
84-2-1 |
5421 |
7421 |
8421+3 |
|
0 1 2 3 4 5 6 7 8 9 |
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 |
0000 0001 0010 0011 0100 1011 1100 1101 1110 1111
|
0000 0111 0110 0101 0100 0100 1010 1001 1000 1111 |
0000 0001 0010 0011 0100 1000 1001 1010 1011 1100 |
0000 0001 0010 0011 0100 0101 0110 1000 1001 1010 |
0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 |
У загальному вигляді десяткове число , задане своїми (n + m) розрядами
може бути представлено у двійково-десятковому коді таким виразом:
або виразом
де і-та тетрада, ,
Наприклад, десяткове число А = 19710 може бути записано у вказаних кодах таким чином:
• - у коді 8421 ,
• - у коді 2421
• - у коді 84-2-1
• - у коді 5421
• - у коді 8421+3
Для кодування десяткових цифр можуть також бути використані коди з числом розрядів, більшим за чотири (табл. 1.4).
Десяткова цифра |
Код |
||||
2 із 5 |
2 із 7 |
1 із 10 |
|||
І |
ІІ |
І |
ІI |
||
0 1 2 3 4 5 6 7 8 9 |
00101 00101 00110 01001 01010 01100 10001 10010 10100 11000 |
11000 00011 00101 00110 01001 01010 01100 10001 10010 10100 |
0100001 0100010 0100100 0101000 0110000 1000001 1000100 1000100 1001000 1010000 |
0000101 0000110 0001001 0001010 0010001 0010010 0100001 0100010 1000001 1000010 |
0000000001 0000000010 0000000100 0000001000 0000010000 0000100000 0001000000 0010000000 0100000000 1000000000 |