在数字系统中,总是用二进制数来表示信号,如计算机中的数据、指令和地址都是用二进制数来表示的。多位二进制数的排列组合叫做代码,如果给一组代码分别赋以一定的含义就叫编码。能够完成编码功能的器件,称为编码器。
一般编码器的方框图如图1(a)所示,它有n个输入端X1、X2、…、Xn,m个输出端Y1、Y2、…、Ym。输入端数与输出端数有如下的关系:

·当n=2m时,是利用n个变量的所有状态进行编码,不存在冗余状态,称为全编码。
·当n<2m时,是利用n个变量的部分状态进行编码,存在冗余状态,称为部分编码。

图1 编码器方框图及10线—4线编码器逻辑符号
在n个输入端中,每次只能有一个信号取1,其余取0。每一组输入端中,每次只能对应一个m位的二进制代码的输出。
1. 10线—4线编码器
图2是一种能将十进制数据变成二进制数据的编码器电路。一个十进制数被表示成二进制码必须是4位,常用代码每一位从低到高的二进制码相当于十进制数的1、2、4、8,所以也称为8421码或BCD码,这种编码器也称为10线—4线编码器或BCD/DEC编码器。

图2 10线—4线编码器电路
由图2可知,该编码器是由4个与非门组成的,有10个用按键开关控制的输入端,平时按键开关悬空相当于接高电平1,有4个输出端A、B、C、D,输出8421码。若按下1键,则与1键对应的线被接地,输入低电平,于是D门输出高电平,整个输出为0001。如果按下7键,则B、C、D门输出均为1,整个电路输出为0111。依次类推,可得到其他二进制码。
如果将图2电路放在一个集成芯片内,便可得到一个集成化的10线—4线编码器,它的逻辑符号如图1(b)所示。
在图1(b)的逻辑符号中,其左侧有10个输入端,带小圆圈表示低电平触发有效。右侧有4个输出端,从上到下按从低到高的方式排列,使用时可以直接选用这类集成块,如国外的SN7417等。
图2电路的逻辑表达式为:
