Преобразователем кода называется комбинационное устройство, предназначенное для изменения вида кодирования информации. Необходимость в преобразовании кодов связана с тем, что в цифровой системе для представления информации используется несколько разновидностей двоичного кода (прямой, обратный, дополнительный, двоично-десятичный, двоично-десятичный с избытком 3 и т. д.). Используются и другие виды кодов, позволяющие, например, при передаче информации по линиям связи уменьшать вероятность появления ошибки, обнаруживать или даже исправлять ее в дальнейшем. Примерами таких кодов являются коды, построенные по принципу 2 из 5 (в которых из пяти символов два всегда имеют единичное значение), коды с проверкой четности или нечетности, коды Хемминга.
Работа преобразователя кодов так же, как и других комбинационных устройств описывается таблицей истинности, которая устанавливает соответствие кодов, снимаемых с выхода преобразователя, кодам, подаваемым на его вход. Следует отметить, что в общем случае в таблице истинности число разрядов входного и выходного кодов может не совпадать. Важно, что таблица устана-вливает однозначное соответствие различных кодов. Таблица истинности является основанием для синтеза логической структуры конкретного преобразователя кодов.
Рассмотрим таблицу истинности (табл. 1) для преобразователя двоично-десятичного кода в десятичный. Десятичный выход, соответ-ствующий двоично-десятичному коду числа на входе, определяется наличием на нем логической 1. При этом для имеющихся безраз-личных наборов входных переменных выполняется доопределение выходных функций для получения минимизированных логических выражений.
В алгебре логики для минимизации выходных функций относительно небольшого числа входных переменных (не более 6) применяется графический метод, использующий карты Карно, который является более простым и наглядным по сравнению с алгебраическими преобразованиями. Для функций большего числа переменных можно декомпозицией выделить более простые составляющие функции с числом переменных не более 6, которые минимизируются с помощью карты Карно.

Таблица 1    
x0x1x2x3y0y1y1y3y4y5y6y7y8y9
0000100000000 
0001010000000 
00100010000000
0011000100000 
01000000100000
01010000010000
01100000001000
01110000000100
10000000000010
10010000000001

При использовании этого метода исходная функция представляется на карте Карно. Карта Карно для преобразователя двоично-десятичного кода в десятичный, полученная на основании таблицы истинности (табл. 1), и условное графическое обозначение преобразователя приведены на рис. 1.
Рис. 1.  Карта Карно (а) и условное графическое обозначение преобразователя двоично-десятичного кода в десятичный (б)
Цифры в клетках карты Карно указывают номера выходных функций, принимающих значение, равное логической 1 на соответствующих наборах входных переменных. Например, на пересечении столбца с номером = 00 и строки с номером = 11 расположена клетка с номером 3, соответствующая набору переменных = 0011, т. е. минтерму , на котором функция у3 = 1. Минтермом (конституентой единицы) называется конъюнкция всех переменных, которые входят в прямом виде, если значение данной переменной в наборе равно 1, либо в инверсном виде, если значение переменной равно 0.
Как видно из рис. 1,а, минтермы, соответствующие двум соседним (в столбце и строке) клеткам карты Карно, отличаются значениями только одной переменной. На карте Карно знаком "Х" обозначены клетки, соответствующие безразличным наборам входных переменных, на которых функции не определены, т. е. эти наборы при работе данного преобразователя не реализуются. Приписав безразличным наборам значение функции, равное логической 1, можно упростить ее алгебраическое выражение. С этой целью на карте Карно пунктирными линиями обведены (графически объединены) соседние клетки (по две и четыре) в столбце и строке, представляющие один конъюнктивный член, в котором исключена общая переменная. Например, объединением минтермов, соответствующих двум соседним клеткам, расположенным на пересечениях столбца с номером 00 и строк с номерами 01 и 11, можно получить
y4 = x0x1xx + xx1xx + x1xx
Таким образом, минимизированные логические выражения выходных функций преобразователя, полученные графическим объединением клеток на карте Карно, имеют следующий вид:
y0 = xxxx; y1 = xxxx3; y2 = xx2x;
y3 = xx2x3; y4 = x1xx; y5 = x1xx3; y6 = x1x2x;
y7 = x1x2x3; y8 = x0x; y9 = x0x3.
Согласно этим выражениям, схему преобразователя кодов можно построить на логических элементах И. Для этого достаточно на их входы подать соответствующие минтермы. При необходимости выражения выходных функций могут быть преобразованы с использованием законов и правил алгебры логики к виду, соответствующему выбранному набору элементов (например, И — НЕ, ИЛИ — НЕ, И — ИЛИ — НЕ и т. д.), на которых реализуется логическая схема.