Also, pay attention to the detail of whether the initial "seed" value is set of 0xFFFF or cleared (0). Different CRC standards specify that as well as the polynomial selection used. To implement this correctly, you really do have to read up on things, and some of the links given to you above will get you started. It is very involved to try to explain it all in a dozen sentences or so on a forum like this.
The A001 polynomial is an industry standard. It is however, not all that effective on catching/correcting a number of multibit errors - but it is part of an old standard, so many still use it as is, for backward compatability, or simply because they've implemented the algorithm once and re-use it. If you get into CRC analysis, you will learn about Hamming-distance (the relative percentage of possible bit errors (single and multibit) that can be detected by any given crc polynomial.... they all are NOT created equal.