title: BitConverter.ToInt16() produces unexpected result
body: <p>I have the following code about a checkers game function that handles moves:</p>
  
  <pre><code>public void convertMoveToIntValues(KeyValuePair&lt;string, string&gt; move, ref Int16 fromNumInt, ref Int16 toNumInt) {
      Byte[] fromNumTemp = { 0, 0 };
      Byte[] fromNum = {0,0,0,0};
      fromNumTemp = Encoding.ASCII.GetBytes(move.Key);
      fromNumTemp[0] -= 96;
      fromNumTemp[1] -= 48;
      fromNum[1] = fromNumTemp[0];
      fromNum[3] = fromNumTemp[1];
      fromNumInt = (Int16)(BitConverter.ToInt16(fromNum, 0) * 8 + BitConverter.ToInt16(fromNum, 2)); 
      Byte[] toNumTemp = {0,0};
      Byte[] toNum = { 0, 0, 0, 0 };
      toNumTemp = Encoding.ASCII.GetBytes(move.Value);
      toNumTemp[0] -= 96;
      toNumTemp[1] -= 48;
      toNum[1] = toNumTemp[0];
      toNum[3] = toNumTemp[1];
      toNumInt = (Int16)(BitConverter.ToInt16(toNum, 0) * 8 + BitConverter.ToInt16(toNum, 2));
  }
  
  public void Main() {
      Int16 a, b;
      convertMoveToInt(New KeyValuePair&lt;string, string&gt;("c3","b4"), a, b);
  
     Console.Writeline("The puppet moves from place no. " + a + " to place no. " + b);
  }
  </code></pre>
  
  <p>I get the wrong solutions like: a=6912 and b=5120.</p>
  
  <p>I use two kinds of Byte[], the first for an ASCII to Byte conversion, and then the other for the Byte to Int16 conversion.
  A good reference for the topic is: <a href="https://msdn.microsoft.com/en-us/library/system.bitconverter.toint16(v=vs.110).aspx" rel="nofollow">https://msdn.microsoft.com/en-us/library/system.bitconverter.toint16(v=vs.110).aspx</a> </p>
  
  <p>All things goes well until the last row, where it produces an incorrect result.</p>
  
  <p>Could you help me getting the right answer?</p>