Кодирование

Из соображений простоты выполнения различных операций в ЭВМ, а также простоты реализации двоичных элементов в ЭВМ используется исключительно двоичная система исчисления. Для перехода к десятичной системе (более понятной человеку) используются или промежуточная, восьмеричная система, или различные способы двоичного кодирования десятичных чисел.

Очевидно, что с помощью трех двоичных разрядов нельзя кодировать десять цифр (23 = 8). Поэтому необходимы, по крайней мерс, четыре разряда (в этом случае остаются неиспользованными 16-10 = 6 комбинаций). Возможно огромное число способов двоичного кодирования десятичных чисел с помощью четырех двоичных разрядов (16!:6!«3 106). Наибольшее распространение получили десять кодов, приведенных в табл. 3.1.

Десятичные цифры d кодируются двоичными цифрами b по формуле

где а0 - весовые коэффициенты соответствующего кода (они могут быть и отрицательными); 63,..., Ь0 - двоичные цифры 0 или 1. Весовой коэффициент указывает «относительный вес» соответствующей двоичной цифры. Например, в весовом коде 5-4-2-1 весовые коэффициенты имеют следующие значения: а3= 5; а2=4; д,=2;д0 = 1. В этом коде число 8,0 запишется так: 51 + 4 0 + 2-1 + 11 или сокращенно 1011.

Таблица 3.1

Десятичное

число

8-4-2-1

С избытком 3

С избытком 6

5-4-2-1

2-4-2-1

4-3-2-1

5-2-1-1

5-2-2-1

#

  • *
  • (N
  • *

ос

Код Г рея

0

0000

ООП

ОНО

0000

0000

0000

0000

0000

0000

0010

1

0001

0100

0111

0001

0001

0001

0001

0001

0111

оно

2

0010

0101

1000

0010

0010

0010

ООП

0010

оно

0111

3

ООН

оно

1001

ООП

ООП

0100

0101

ООП

0101

0101

4

0100

0111

1010

0100

0100

1000

0111

оно

0100

0100

5

0101

1000

1011

1000

1011

1001

1000

1000

1011

1100

6

ОНО

1001

1100

1001

1100

1010

1010

1001

1010

1101

7

0111

1010

1101

1010

1101

1100

1100

1010

1001

1111

8

1000

1011

1110

1011

1110

1101

1110

1011

1000

1110

9

1001

1100

1111

1100

1111

1110

1111

1110

1111

1010

Самый распространенный весовой код - это 8-4-2-1, т. к. его цифры соответствуют точно двоичной записи. Например,

  • 2 9 7 5
  • 297510 = 0010 1001 0111 0101 = 00101001011101018421.

Обратное преобразование тоже выполняется очень легко: двоичное число разделяется справа налево на группы по четыре разряда (так называемые тетрады), каждая из которых соответствует одной десятичной цифре.

Каждый из остальных двоично-десятичных кодов, приведенных в табл. 3.1, имеет свои преимущества: например, код с избытком 3 не является весовым, но он самодополняющийся, что удобно для выполнения вычитания. Код Грея принадлежит к так называемым циклическим кодам и характеризуется тем, что каждая последующая комбинация двоичных цифр отличается от предыдущей только одним разрядом. Это делает его особенно удобным для использования в различных преобразователях (если имеется изменение одновременно более чем в одном разряде, это свидетельствует о наличии ошибки).

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

Рассмотрим еще один способ обнаружения ошибок в данном десятичном числе, кодированном двоично. Для этой цели добавляют пятый разряд, значение которого определяется суммированием единиц данного числа. При этом осуществляется контроль по четности и нечетности. При контроле по четности число единиц с помощью пятого разряда доводится до четного числа, а при контроле по нечетности - до нечетного числа. Например, десятичное число 5 в коде 8-4-2-1 выражается так: 0101. Чтобы число единиц было четным (в данном случае их две), в пятый разряд записывают 0, а для получения нечетного числа в пятый разряд записывают 1.

Таблица 3.2

*10

*2

*16

0

0

0

0

1

1

1

1

2

10

2

2

3

11

3

3

4

100

4

4

5

101

5

5

6

по

6

6

7

111

7

7

8

1000

10

8

9

1001

11

9

10

1010

12

А

11

1011

13

В

12

1100

14

С

13

1101

15

D

14

1110

16

Е

15

1111

17

F

16

10000

20

10

Контроль по четности (нечетности) используется, например, при обмене данными между памятью и арифметическим устройством. Если из памяти будет прочитано число 0111 с контрольным битом 1 (контроль по четности), то арифметическое устройство образует новый контрольный бит, который также должен быть равен 1.

Если при чтении какой-либо бит из разрядов числа 0111 был принят неправильно (например, было принято число 0110), тогда арифметическое устройство выработает контрольный бит 0, и в результате сравнения с переданным из памяти битом 1 будет зарегистрирована ошибка.

Контроль по нечетности используется, например, при чтении данных из ЗУ на магнитных дисках и при записи в него (для каждого байта).

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

Поскольку арабских цифр недостаточно, в шестнадцатеричной системе используются буквы А, В, С, D, Е, F. Приведем примеры записи чисел в шестнадцатеричной системе счисления: байт 10000111 ->8716; байт 11001000 —>С816; байт 00111111 —? 3F16; байт 11011110->DE16.

 
Посмотреть оригинал
< Пред   СОДЕРЖАНИЕ   ОРИГИНАЛ     След >