Original:-http://www.cs.jhu.edu/~scheideler/courses/600.344_S02/CRC.html

…….. Well, at the very least, it would be nice to make sure that the CRC did as well as adding a single parity bit. That is, we would like to avoid using any G(x) that did not guarantee we could detect all instances of errors that change an odd number of bits.

*->If a received message T'(x) contains an odd number of inverted bits, then E(x) must contain an odd number of terms with coefficients equal to 1. ->As a result, E(1) must equal to 1 (since if x = 1 then xi = 1 for all i). ->If G(x) is a factor of E(x), then G(1) would also have to be 1. ->So, if we make sure that G(1) = 0, we can conclude that G(x) does not divide any E(x) corresponding to an odd number of error bits. In this case, a CRC based on G(x) will detect any odd number of errors. ->As long as G(x) has some factor of the form xi + 1, G(1) will equal 0. So, it isn’t hard to find such a polynomial. ……….*