Попередня сторінка          Зміст           Наступна сторінка          Електронні посібники ВНТУ

 

1.3.4 Кодовані позиційні системи числення

 

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

 
(1.10)

де р – основа системи числення, символами якої кодуються числа, Р  – основа  заданої системи числення.

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

Прикладом системи числення з природною вагою розрядів може бути двійково-десяткова система (англ. 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  можливих комбінацій, що може бути використано для виявлення деяких видів похибок.

Таблиця 1.3 – Десяткові цифрии в двійково-десяткових кодах

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

Коди 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) розрядами

може бути представлено у двійково-десятковому коді  таким виразом:

 
(1.11)

або виразом

 

 
(1.12)

 

де і-та тетрада,  

Наприклад, десяткове число А = 19710 може бути записано у вказаних кодах таким чином:

•    - у коді 8421           ,

•    - у коді 2421                  

•    - у коді 84-2-1      

•    - у коді 5421            

•    - у коді 8421+3    

Для кодування десяткових цифр можуть також бути використані  коди з числом розрядів, більшим за чотири (табл. 1.4).

Таблиця 1.4 – Коди з числом розрядів, більшими за 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