# Cyclic Redundancy Check (CRC) Tutorial

## Cyclic Redundancy Check:

**Cyclic Redundancy Check (CRC)** is one of the most powerful errors detecting codes. It is based on binary division. In this technique, a set of redundant bits that are known as **CRC Remainder**.

Given a k-bit block of data the transmitter generates an n-bit sequence that is known as **Frame Check Sequence (FCS)**, the resulting frame consisting of (k+n) number of bits is exactly divisible by some predetermined number (divisor). The receiver divides the incoming bits by the same predetermined number and if there is no remainder then it is assumed to be error-free, otherwise, there is an error in the data.

## Steps of Cyclic Redundancy Check (CRC) generation:

F = n-bit FCS

P = (n+1)-bit pattern or Predetermined Number

2. M is multiplied by 2^{n} to form 2^{n}M

3. 2^{n}M is divided by P to get the remainder R

4. R is added to 2^{n}M to form T, T=2^{n}M+R

5. T is transmitted.

## Steps of CRC Checking:

2. Incoming data (T) is divisible by P to get the remainder R

3. If R=0 then there is no error, otherwise there must be an error in the data.

**Example:**