title: What byte order when BitConverter.IsLittleEndian = false
body: <p>I'm storing numbers in their byte equivalent format, using the least number of bytes possible. With the range 65535 through 16777215, BitConverter gives me a 4 byte array, but I want to only store 3 bytes.</p>
  
  <p>For the code below, my array is [0]254, [1]255, [2]255, [3]0, so I can chop out byte [3]. This is on a Core i7 proc. In my production code, before the array copy, I am checking BitConverter.IsLittleEndian to determine that I can chop the last byte.</p>
  
  <pre><code>int i = 16777214;
  byte[] bytesTemp = BitConverter.GetBytes(i);
  
  byte[] value = null;
  if (BitConverter.IsLittleEndian) 
      Array.Copy(bytesTemp, 0, value, 0, 3); 
  </code></pre>
  
  <p>My question is - do I need to concern myself with the Endian-ness of the system, or does the CLR just use this LittleEndian format regardless? I don't have a BigEndian system (nor even know how I'd get one) to test whether my byte array comes out in the reverse order.</p>