long 値と byte[] 値のシリアル化のために作成した、以下に示す 2 つの関数があります。
public static byte[] LongToByte(long Value)
{
byte[] Output = new byte[8];
Output[0] = (byte)Value;
Output[1] = (byte)(Value >> 8);
Output[2] = (byte)(Value >> 16);
Output[3] = (byte)(Value >> 24);
Output[4] = (byte)(Value >> 32);
Output[5] = (byte)(Value >> 40);
Output[6] = (byte)(Value >> 48);
Output[7] = (byte)(Value >> 56);
return Output;
}
public static long LongFromByte(byte[] Value)
{
long Output = Value[0];
Output += ((long)Value[1] << 8);
Output += ((long)Value[2] << 16);
Output += ((long)Value[3] << 24);
Output += ((long)Value[4] << 32);
Output += ((long)Value[5] << 40);
Output += ((long)Value[6] << 48);
Output += ((long)Value[7] << 56);
return Output;
}
上記の方法を使用すると、それらを使用しているすべてのプラットフォームでエンディアンが同じままになります。
または、コードを処理するシステムのエンディアンに基づいて、またはいずれかの結果が変化しますか?
すべてに感謝します。