title: Strange problem when trying to read data
body: <p>When I write:</p>
  
  <pre><code>var tagType = _reader.ReadByte();
  
  while (tagType != 8)
  {
      var skip = ReadNext3Bytes() + 11;
      _reader.BaseStream.Position += skip;
  
      tagType = _reader.ReadByte();
  }
  </code></pre>
  
  <p>...it's working, but when I write:</p>
  
  <pre><code>var tagType = _reader.ReadByte();
  
  while (tagType != 8)
  {
      _reader.BaseStream.Position += ReadNext3Bytes() + 11; 
       tagType = _reader.ReadByte();
  }
  </code></pre>
  
  <p>...it is not working, and I can't understand why - I'm getting unexpected results. Heres the <code>ReadNext3Bytes</code> method:</p>
  
  <pre><code>    private long ReadNext3Bytes()
      {
          try
          {
              return Math.Abs((_reader.ReadByte() &amp; 0xFF) * 256 * 256 + (_reader.ReadByte() &amp; 0xFF) 
                  * 256 + (_reader.ReadByte() &amp; 0xFF));
          }
          catch 
          {
              return 0;
          }
      }
  </code></pre>
  
  <p>Why is that, and how can I fix it?</p>
  
  <p>Thanks.</p>