title: Unsigned int not giving expected value
body: <p>I'm reading 2 bytes from a file and trying to use the unsigned int as an ID for my SVG output.</p>
  
  <pre><code>unsigned int character_name_1;
  unsigned int character_name_2;
  
  fread( buffer, sizeof( char ), 4, fpi );
  character_name_1=(((buffer[1]&lt;&lt;8)+buffer[0])&amp;0xFFFF);
  character_name_2=(((buffer[3]&lt;&lt;8)+buffer[2])&amp;0xFFFF);
  </code></pre>
  
  <p>If the file has 2 values 126 and 128 which are 0x007E and 0x0080 (buffer[0]=0x7E and buffer[1]=0x00), then, if I print out to my SVG file <code>&lt;g id=%u d=%s&gt;&lt;/g&gt;",character_name_1, pathdata);</code>, then I get the id correctly recorded as 'id="126"'.</p>
  
  <p>However, the second value is problematic:<code>&lt;g id=%u d=%s&gt;&lt;/g&gt;",character_name_2, pathdata);</code> gives me the following entry: 'id="65408"'</p>
  
  <p>The next value, which has the 2 bytes 0xA0 and 0x00, which I am expecting to be 160 is written as 65440. 0xA1 and 0x00 should be 161, but I'm getting 65441.</p>
  
  <p>I hope this is clear.</p>