В кодировании, когда цифры или буквы представлены определенной группой символов, говорят, что кодируется цифра или буква. Группа символов называется кодом . Цифровые данные представлены, сохранены и переданы в виде группы битов. Эта группа битов также называется двоичным кодом .
Двоичные коды можно классифицировать на два типа.
- Взвешенные коды
- Невзвешенные коды
Если код имеет позиционные веса, то он называется взвешенным кодом . В противном случае это невзвешенный код. Взвешенные коды могут быть далее классифицированы как положительно взвешенные коды и отрицательно взвешенные коды.
Двоичные коды для десятичных цифр
В следующей таблице показаны различные двоичные коды для десятичных цифр от 0 до 9.
Десятичная цифра | Код 8421 | Код 2421 | 84-2-1 Код | Код превышения 3 |
---|---|---|---|---|
0 | 0000 | 0000 | 0000 | 0011 |
1 | 0001 | 0001 | 0111 | 0100 |
2 | 0010 | 0010 | 0110 | 0101 |
3 | 0011 | 0011 | 0101 | 0110 |
4 | 0100 | 0100 | 0100 | 0111 |
5 | 0101 | 1011 | 1011 | 1000 |
6 | 0110 | 1100 | 1010 | 1001 |
7 | 0111 | 1101 | 1001 | 1010 |
8 | 1000 | 1110 | 1000 | 1011 |
9 | 1001 | 1111 | 1111 | 1100 |
У нас есть 10 цифр в десятичной системе счисления. Чтобы представить эти 10 цифр в двоичном виде, нам нужно минимум 4 бита. Но с 4 битами будет 16 уникальных комбинаций нулей и единиц. Так как у нас есть только 10 десятичных цифр, остальные 6 комбинаций нулей и единиц не требуются.
8 4 2 1 код
-
Веса этого кода 8, 4, 2 и 1.
-
Этот код имеет все положительные веса. Итак, это положительно взвешенный код .
-
Этот код также называется естественным BCD (двоично-десятичным) кодом .
Веса этого кода 8, 4, 2 и 1.
Этот код имеет все положительные веса. Итак, это положительно взвешенный код .
Этот код также называется естественным BCD (двоично-десятичным) кодом .
пример
Давайте найдем BCD-эквивалент десятичного числа 786. Это число имеет 3 десятичных цифры 7, 8 и 6. Из таблицы можно записать коды BCD (8421) с номерами 7, 8 и 6: 0111, 1000 и 0110 соответственно ,
∴ (786) 10 = (011110000110) BCD
В представлении BCD 12 битов, так как каждый код BCD десятичной цифры имеет 4 бита.
2 4 2 1 код
-
Весами этого кода являются 2, 4, 2 и 1.
-
Этот код имеет все положительные веса. Итак, это положительно взвешенный код .
-
Это неестественный код BCD . Сумма весов неестественных кодов BCD равна 9.
-
Это самодополняющий код. Самопополняющие коды обеспечивают дополнение 9 к десятичному числу, просто чередуя 1 и 0 в его эквивалентном представлении 2421.
Весами этого кода являются 2, 4, 2 и 1.
Этот код имеет все положительные веса. Итак, это положительно взвешенный код .
Это неестественный код BCD . Сумма весов неестественных кодов BCD равна 9.
Это самодополняющий код. Самопополняющие коды обеспечивают дополнение 9 к десятичному числу, просто чередуя 1 и 0 в его эквивалентном представлении 2421.
пример
Давайте найдем 2421 эквивалент десятичного числа 786. Это число имеет 3 десятичных числа 7, 8 и 6. Из таблицы мы можем записать 2421 кодов 7, 8 и 6: 1101, 1110 и 1100 соответственно.
Следовательно, 2421 эквивалент десятичного числа 786 равен 110111101100 .
8 4 -2 -1 код
-
Вес этого кода 8, 4, -2 и -1.
-
Этот код имеет отрицательные веса вместе с положительными весами. Итак, это отрицательно взвешенный код .
-
Это неестественный код BCD .
-
Это самодополняющий код.
Вес этого кода 8, 4, -2 и -1.
Этот код имеет отрицательные веса вместе с положительными весами. Итак, это отрицательно взвешенный код .
Это неестественный код BCD .
Это самодополняющий код.
пример
Давайте найдем 8 4-2-1 эквивалент десятичного числа 786. Это число имеет 3 десятичных числа 7, 8 и 6. Из таблицы мы можем написать 8 4 -2 -1 коды 7, 8 и 6 1001, 1000 и 1010 соответственно.
Следовательно, 8 4 -2 -1 эквивалент десятичного числа 786 равен 100110001010 .
Код превышения 3
-
Этот код не имеет весов. Итак, это невзвешенный код .
-
Мы получим код Excess 3 десятичного числа, добавив три (0011) к двоичному эквиваленту этого десятичного числа. Следовательно, это называется избыточным кодом 3.
-
Это самодополняющий код.
Этот код не имеет весов. Итак, это невзвешенный код .
Мы получим код Excess 3 десятичного числа, добавив три (0011) к двоичному эквиваленту этого десятичного числа. Следовательно, это называется избыточным кодом 3.
Это самодополняющий код.
пример
Найдем эквивалент Excess 3 для десятичного числа 786. Это число имеет 3 десятичных числа 7, 8 и 6. Из таблицы мы можем записать коды Excess 3 для 7, 8 и 6: 1010, 1011 и 1001 соответственно.
Следовательно, эквивалентный десятичному числу 786 избыток 3 равен 101010111001.
Серый код
В следующей таблице показаны 4-битные коды Грея, соответствующие каждому 4-битному двоичному коду.
Десятичное число | Бинарный код | Серый код |
---|---|---|
0 | 0000 | 0000 |
1 | 0001 | 0001 |
2 | 0010 | 0011 |
3 | 0011 | 0010 |
4 | 0100 | 0110 |
5 | 0101 | 0111 |
6 | 0110 | 0101 |
7 | 0111 | 0100 |
8 | 1000 | 1100 |
9 | 1001 | 1101 |
10 | 1010 | 1111 |
11 | 1011 | 1110 |
12 | 1100 | 1010 |
13 | 1101 | 1011 |
14 | 1110 | 1001 |
15 | 1111 | 1000 |
-
Этот код не имеет весов. Итак, это невзвешенный код .
-
В приведенной выше таблице последовательные коды Грея отличаются только одной позицией бита. Следовательно, этот код называется единичным кодом расстояния .
Этот код не имеет весов. Итак, это невзвешенный код .
В приведенной выше таблице последовательные коды Грея отличаются только одной позицией бита. Следовательно, этот код называется единичным кодом расстояния .
Преобразование двоичного кода в серый
Выполните следующие шаги для преобразования двоичного кода в его эквивалентный код Грея.
-
Рассмотрите данный двоичный код и поместите ноль слева от MSB.
-
Сравните два последовательных бита, начиная с нуля. Если 2 бита одинаковы, то выход равен нулю. В противном случае, выход один.
-
Повторите вышеуказанный шаг, пока не получите LSB кода Грея.
Рассмотрите данный двоичный код и поместите ноль слева от MSB.
Сравните два последовательных бита, начиная с нуля. Если 2 бита одинаковы, то выход равен нулю. В противном случае, выход один.
Повторите вышеуказанный шаг, пока не получите LSB кода Грея.
пример
Из таблицы мы знаем, что код Грея, соответствующий двоичному коду 1000, равен 1100. Теперь давайте проверим его с помощью описанной выше процедуры.
Учитывая, двоичный код 1000.
Шаг 1 — поместив ноль слева от MSB, двоичный код будет 01000.
Шаг 2 — Сравнивая два последовательных бита нового двоичного кода, мы получим серый код как 1100 .