Encoders

Last Updated : 20 Feb, 2026

An encoder is a digital combinational circuit that converts multiple input signals into a binary code. It typically has one active input at a time and generates a binary output representing the position of that active input.

  • The number of inputs is usually 2n, with n output lines.
  • Inputs are usually active high, meaning high voltage represents an active signal.
  • Binary-weighted encoders assign codes based on input position using binary values.
  • Encoders help convert parallel inputs into compact binary formats for processing.
  • Encoders are useful in digital systems for data compression and efficient transmission.
  • For example, a 4-to-2 encoder has four inputs and produces a 2-bit output code.
1
Encoder

Types of Encoders

1. 4 to 2 Encoder

The 4 to 2 Encoder consists of four inputs Y3, Y2, Y1 & Y0, and two outputs A1 & A0. At any time, only one of these 4 inputs can be ‘1’ in order to get the respective binary code at the output. The figure below shows the logic symbol of the 4 to 2 encoder.

2
4 to 2 Encoder

Truth Table

The Truth table of 4 to 2 encoders is as follows:

INPUTS(Y3Y2Y1Y0)OUTPUTS(A1A0)
000100
001001
010010
100011

Logical expression for A1 and A0:

A1 = Y3 + Y2
A0 = Y3 + Y1

Circuit Diagram

The above two Boolean functions A1 and A0 can be implemented using two input OR gates: 

3-
Implementation using OR Gate

2. Octal to Binary Encoder (8 to 3 Encoder)

The 8 to 3 Encoder or octal to Binary encoder consists of 8 inputs: Y7 to Y0 and 3 outputs: A2, A1 & A0. Each input line corresponds to each octal digit value and three outputs generate corresponding binary code. The figure below shows the logic symbol of octal to the binary encoder.

4-
Octal to Binary Encoder (8 to 3 Encoder)

Truth Table

INPUTS(Y7Y6Y5Y4Y3Y2Y1Y0)OUTPUTS(A2A1A0)
00000001000
00000010001
00000100010
00001000011
00010000100
00100000101
01000000110
10000000111

Logical expression for A2, A1, and A0:

A2 = Y7 + Y6 + Y5 + Y4
A1 = Y7 + Y6 + Y3 + Y2
A0 = Y7 + Y5 + Y3 + Y1

Circuit Diagram

The above three Boolean functions A2, A1, and A0 can be implemented using four input OR gates:

5
Implementation using OR Gate

3. Decimal to BCD Encoder

The decimal-to-binary encoder usually consists of 10 input lines and 4 output lines. Each input line corresponds to each decimal digit and 4 outputs correspond to the BCD code. This encoder accepts the decoded decimal data as an input and encodes it to the BCD output which is available on the output lines. The figure below shows the logic symbol of the decimal to BCD encoder.

6
Decimal to BCD Encoder

Truth Table

INPUTS(Y9Y8Y7Y6Y5Y4Y3Y2Y1Y0)OUTPUTS(A3A2A1A0)
00000000010000
00000000100001
00000001000010
00000010000011
00000100000100
00001000000101
00010000000110
00100000000111
01000000001000
10000000001001

Logical expression for A3, A2, A1, and A0:

A3 = Y9 + Y8
A2 = Y7 + Y6 + Y5 +Y4
A1 = Y7 + Y6 + Y3 +Y2
A0 = Y9 + Y7 +Y5 +Y3 + Y1

Circuit Diagram

The above two Boolean functions can be implemented using OR gates:

7
Implementation using OR Gate

4. Priority Encoder

A 4 to 2 priority encoder has 4 inputs: Y3, Y2, Y1 & Y0, and 2 outputs: A1 & A0. Here, the input, Y3 has the highest priority, whereas the input, Y0 has the lowest priority. In this case, even if more than one input is ‘1’ at the same time, the output will be the (binary) code corresponding to the input, which is having higher priority.

Truth Table

INPUTS(Y3Y2Y1Y0)OUTPUTS(A1A0V)
0000XX0
0001001
001X011
01XX101
1XXX111

Logical Expressions using K-Map

The logical expression for A1 is shown below:

8
Logical Expression

The Logical Expression for A0 is shown below:

9
Logical Expression

Circuit Diagram

The above two Boolean functions can be implemented as:

10
Priority Encoder

Errors in Encoders

There is an ambiguity, when all outputs of the encoder are equal to zero.

  • If more than one input is active High, then the encoder produces an output, which may not be the correct code.
  • In a simple encoder, when all inputs are LOW, the output is 0. This creates confusion because the output 0 may also represent a valid input (for example, input line 0 active).
  • Basic encoders cannot determine which input to encode if multiple inputs are HIGH at the same time, leading to unpredictable or incorrect outputs.

So, to overcome these difficulties, we should assign priorities to each input of the encoder. Then, the output of the encoder will be the code corresponding to the active high inputs, which have higher priority.

Comment

Explore