我有下面显示的两个函数,它们是为 long 和 byte[] 值的序列化而构建的。
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;
}
将使用上述方法确保字节序在任何使用它们的平台上保持不变。
还是会根据处理代码的系统的字节顺序改变两者的结果?
谢谢大家。