Les codeurs (ou encodeurs) et les décodeurs sont des circuits dont les fonctions sont l'inverse l'une de l'autre :
1 - Un codeur fournit sur n bits de sortie, une valeur (un code) dépendant de celle de ses N entrées qui est active.
2 - Un décodeur lit sur ses n entrées un code et active en conséquence la sortie N de même numéro. N peut être inférieur ou égal à 2 puissance n.

74HC42

L'utilisation de ces circuits est donc bien entendu très différente.

On utilisera par exemple un décodeur pour commander chaque segment d'un afficheur à diodes électroluminescentes permettant l'écriture d'un chiffre en fonction d'une entrée codée en binaire ou le plus souvent en DCB (Décimal codé Binaire) sur 4 bits. On parlera dans ce cas d'un décodeur de 4 vers 7. Les décodeurs sont également utilisés pour adresser un périphérique parmi plusieurs. On parle alors de décodage d'adresse.

Mais on utlisera un codeur pour fournir à un système de calcul le code binaire (ou DCB) correspondant à une touche de clavier enfoncée.
Souvent dans un codeur, dit alors codeur à priorité, si plusieurs entrées sont actives simultanément, c'est l'entrée de plus fort poids qui l'emporte.

On pourra consulter les fiches techniques des circuits suivants :
1 - codeur à priorité, octal --> binaire 74LS148
2 - codeur à priorité, décimal --> DCB 74HC147
3 - décodeur binaire --> décimal 74HC154 ou DCB --> décimal 74HC42
4 - décodeur DCB --> 7 segments 74HC4511.

Pour réaliser des décodage vers un grand nombre de sorties, par exemple 5 vers 32 ou 6 vers 64, il pourra être intéressant d'utiliser plusieurs circuits MSI, comme le 74HC139 (décodeur 2 vers 4) associé au 74HC138 (décodeur 2 vers 4).

La création d'un codeur ou d'un décodeur se fait assez simplement par traduction de la table de vérité, après une simplification en fonction de la technologie retenue pour la fabrication.

Décodeur
DCB --> décimal
(4 lignes vers 10)

74HC147

Encodeur
décimal --> DCB
à priorité