title: Implement CRC algorithm from equation
body: <p>I'm dealing with a device which say to use this 16 bit cyclic redundancy check:</p>
  
  <pre><code>CCITT CRC-16 with polynomial x^16 + x^12 + x^5 + x^1
  </code></pre>
  
  <p>I looked for an implementation of such algorithm, but I did find only ones with the last term of the equation equal to <code>1</code> (i.e. <code>x^0</code>) instead of <code>x^1</code>, like <a href="http://www.eagleairaust.com.au/code/crc16.htm" rel="nofollow">this one</a> or <a href="http://www.nongnu.org/avr-libc/user-manual/group__util__crc.html#ga1c1d3ad875310cbc58000e24d981ad20" rel="nofollow">this</a>.</p>
  
  <p>I was going to implement the algorithm by myself, when I realized I don't know how to start. How is it supposed to develop a CRC calculation starting from an equation?</p>