可能な限り最小のバイト数を使用して、数値をバイトと同等の形式で格納しています。65535 から 16777215 の範囲で、BitConverter は 4 バイトの配列を提供しますが、3 バイトだけを格納したいと考えています。
以下のコードでは、私の配列は [0]254、[1]255、[2]255、[3]0 なので、バイト [3] を切り取ることができます。これは Core i7 proc 上にあります。私の製品コードでは、配列をコピーする前に、BitConverter.IsLittleEndian をチェックして、最後のバイトを切り刻むことができるかどうかを判断しています。
int i = 16777214;
byte[] bytesTemp = BitConverter.GetBytes(i);
byte[] value = null;
if (BitConverter.IsLittleEndian)
Array.Copy(bytesTemp, 0, value, 0, 3);
私の質問は、システムのエンディアン性に気を配る必要がありますか、それとも CLR は関係なくこのリトルエンディアン形式を使用するだけですか? バイト配列が逆の順序で出力されるかどうかをテストするための BigEndian システムはありません (取得方法もわかりません)。