Cykliczny kod nadmiarowy (Cyclic Redundancy Check – CRC)
Podstawą działania cyklicznych kodów nadmiarowych są wielomiany, których przykłady widoczne są poniżej:
CRC-3 (gsm)	x3+x1+x0
CRC-4 (itu)	x4+x1+1
CRC-5 (epc)	x5+x3+x0
CRC-5 (usb)	x5+x2+1
CRC-8	x8+x7+x6+x4+x2+1
CRC-12	x12+x11+x3+x2+x1+x0
CRC-16	x16+x15+x2+1
CRC-CCITT	x16+x12+x5+1
CRC-32	x32+x26+x23+x22+x16+x12+x11+x10+x8+x7+x5+x4+x2+x+1

Aby obliczyć wartość kody CRC-N dla ciągu bitowego dowolnej długości należy najpierw dodać do ciągu źródłowego n bitów o wartości zerowej. Kolejną czynnością jest przeprowadzenie operacji podobnej do dzielenia binarnego z resztą „pod kreskę”, ale zamiast odejmowania używana jest operacja XOR. Wynikiem działania kodu CRC-N jest wartość reszty, która ma długość n-bitów.
	Przykład:
Użyto CRC-4, który wykorzystuje wielomian x4+x1+x0 (0x13, 10011b). 
Ciągiem źródłowym jest 24-bitowa wartości 0x321 (1100100001b).
Ciąg wyjściowym ma długość 4-bitów.
Przeprowadzone obliczenia:
    1101111001 reszta 1110
    11001000010000 () 10011 
XOR 10011                 
    010100                
XOR  10011                
     0011100              
XOR    10011              
       011110             
XOR     10011             
        011011            
XOR      10011            
         010000
XOR       10011
          00011000
XOR         010011
            001011
W celu obliczenia, czy przesłany kod jest prawidłowy należy dokonać operacji podobnej do poprzedniej. Do ciągu źródłowego trzeba jednak dodać podaną sumę kontrolną i sprawdzić, czy reszta równa jest zero. Jeżeli ten warunek jest spełniony, wtedy należy przyjąć, że podana suma kontrolna pasuje do podanego ciągu źródłowego.
	Przykład:
Użyto CRC-4, który używa wielomian x4+x1+x0 (0x13, 10011b). 
Ciągiem źródłowym jest 24-bitowa wartości 0x321 (1100100001b) i ciąg kontrolny 7 (1110b).
Przeprowadzone obliczenia:    

    1101111001 reszta 0101 
    11001000011110 () 10011 
XOR 10011        
     10100       
XOR  10011       
       11100     
XOR    10011     
       011110    
XOR     10011    
        011011
XOR      10011
          10001
XOR       10011
          00010110
XOR          10011
             00101   
Ponieważ reszta jest różna od zera, dlatego można stwierdzić, że załączono suma kontrolna nie pasuje do przedstawionego ciągu źródłowego. 
Zadania do zrobienia:
 1.	Obliczyć kod CRC-3 dla ciągu 0x4F
 2.	Oblicz kod CRC-5 (usb) dla liczby 64(10) + (długość imienia modulo 5). Należy zamienić podaną liczbę na liczbę binarną zaczynając od najważniejszej cyfry.
 3.	Obliczyć kod CRC-4 dla ciągu 0xA57
 4.	Sprawdzić, czy dla ciągu 0x3245 wartość kodu CRC-12 wynosi 0x324
 5.	Obliczyć czy dla ciągu 0x45 44 wartość kodu CRC-8 wynosi 0x22
 6.	Podać dwa dowolne ciągi 8-bitowe, dla których CRC-4 wynosi 3.