· Soit M = m1 m2 … mk un bloc de k bits à transmettre
· Le codeur transforme M en un bloc de n bits C = c1 c2 … cn
· Un tel code est noté code (n, k)
· Le code est en bloc si le mot C ne dépend que de M
· Le rendement du code R = k ¸ n
· Le poids de Hamming d’un mot du code est le nombre de 1 qu’il contient
· La distance de Hamming entre deux mots de code est le poids du vecteur somme
 
Exemple d’encodage avec pour hypothèses n = 12, k = 8, G(x) = x4 + x3 + 1 (équivaut à 11001) et un message à envoyer = 10011010 :
 
100110100000|11001
            |--------
11001       |11100111
-----       |
 10100     
|
 11001     
|
 -----     
|
  11011    
|
  11001    
|
  -----    
|
     100   
|
     1000  
|
     10000 
|
     11001 
|
     ----- 
|
      10010 |
      11001 |
      ----- |
       10110|
       11001|
       -----|
        1111|
 
Exemple de décodage avec pour hypothèses n = 12, k = 8, G(x) = x4 + x3 + 1 (équivaut à 11001) et un message reçu = 100110101111 (celui qu’on a envoyé précédemment) :
 
100110101111|11001
            |--------
11001       |11100111
-----       |
 10100     
|
 11001     
|
 -----     
|
  11011    
|
  11001    
|
  -----    
|
     100    |
     1001  
|
     10011 
|
     11001 
|
     ----- 
|
      10101 |
      11001 |
      ----- |
       11001|
       11001|
       -----|
       00000|
1. G(x) possède deux termes ou plus,
2. G(x) ne divise pas 1 + xr avec r = {1, …, n},
3. G(x) est de degré p,
permet de détecter 1 ou 2 erreurs indépendantes et tous les paquets d'erreurs de longueur inférieure ou égale à p ( deg (G) = p) à condition que l’erreur E(x) ne soit pas un multiple de G(x) (probabilité très faible et dépendant du polynôme générateur choisi).