title: Variation between C# and Java when converting long to byte array
body: <p>I'm not experienced in Java and so this is going straight over my head:-</p>
  
  <p>Java Code:</p>
  
  <pre><code>long foo = 1234567890;
  byte[] boo = ByteBuffer.allocate(8).putLong(foo).array();
  </code></pre>
  
  <p>C# Code:</p>
  
  <pre><code>long foo = 1234567890;
  byte[] bar = BitConverter.GetBytes(foo);
  
  // reverse to match Java's Big Endianess
  byte[] boo = bar.Reverse().ToArray();
  </code></pre>
  
  <p>In the Java sample, boo = 0, 0, 0, 0, 73, -106, 2, -46</p>
  
  <p>However in C#, boo = 0, 0, 0, 0, 73, 150, 2, 210</p>
  
  <p>Can someone with a bigger brain, explain why these differ?</p>
  
  <p>Many thanks!</p>