detection bits is approximately: 94% for 4 bits of detection, and 

 99.6% for 8 bits of detection. 



In practice, the steps for implementing a CRC code are: 



1) Append n zero's to the right end of the data stream, where 

 n = number of error detection bits. 



2) Divide the extended data stream by a known primitive. 

 Remember that this is modulo-2 POLYNOMIAL division, not 

 straight division. If you have questions refer to the 

 examples. 



3) The coefficients of the REMAINDER of the division process 

 are the CRC code. The number of bits in the CRC code must be 

 equal to the number of error detection bits. Pad with leading 

 zero's if necessary. 



4) Transmit the original data stream and the appended CRC 

 code. 



5) Receive the transmission. 



6) Divide (modulo-2 polynomial) the received data stream 

 (including the CRC code) by the known primitive. If the 

 remainder is zero, then there were no errors. If non-zero, an 

 error occurred. 



Modulo-2 polynomial division uses modulo-2 addition. Modulo-2 

 addition can be defined as follows: 



11 



+0 +1 +0 +1 



This is the "exclusive or" (XOR) function and is equivalent to 

 ordinary addition, except 2 is equal to 0. Note that since 

 1+1=0, then 1 = -1. 



150 



