title: Unexpected value after shifting BigInteger to the left
body: <p>I have a string which I'm converting to BigInteger by parsing then shifting it by 3 bits to the left and convert to a string again.  The problem is that it always output extra bits before the actual value.  For example:</p>
  
  <pre><code>Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
          Dim positiveString As String = "C0020ACB1086886D8C2E4D2DEDC726A6"
          Dim posBigInt As BigInteger = 0
          posBigInt = BigInteger.Parse(positiveString, System.Globalization.NumberStyles.AllowHexSpecifier)
          posBigInt = posBigInt &lt;&lt; Hex(3)
          RichTextBox1.Text = posBigInt.ToString("X")
      End Sub
  </code></pre>
  
  <ul>
  <li>Gives me: <em>E001056588434436C6172696F6E393530</em> -  Which is incorrect</li>
  <li>First 4 bytes Should be: <em>00105658</em> (I can't check the whole array
  because i don't know another way to do it other then BigInteger,
  checked with UInt64)</li>
  </ul>
  
  <p>The "E" before the value is what I can't explain. I tried different hex strings but it always produces those extra bits.  What am I doing wrong?</p>