title: bitwise shifts, unsigned chars
body: <p>Can anyone explain verbosely what this accomplishes? Im trying to learn c and am having a hard time wrapping my head around it. </p>
  
  <pre><code>void tonet_short(uint8_t *p, unsigned short s) {
    p[0] = (s &gt;&gt; 8) &amp; 0xff;
    p[1] = s &amp; 0xff;
  }
  
  void tonet_long(uint8_t *p, unsigned long l)
  {
    p[0] = (l &gt;&gt; 24) &amp; 0xff;
    p[1] = (l &gt;&gt; 16) &amp; 0xff;
    p[2] = (l &gt;&gt; 8) &amp; 0xff;
    p[3] = l &amp; 0xff;
  }
  </code></pre>