C# 8字节byte数组转int

对方是协议

对于整型、长整型等数据类型,Big endian 认为第一个字节是最高位字节(按照从低地址到高地址的顺序存放数据的高位字节到低位字节);而 Little endian 则相反,它认为第一个字节是最低位字节(按照从低地址到高地址的顺序存放据的低位字节到高位字节)。

直接使用bitconvert.toint,则正好相反

通过BitConverter.IsLittleEndian获取可以知道,默认是LittleEndian

/// <summary>
/// 8字节byte 转int8
/// </summary>
/// <param name="data"></param>
/// <returns></returns>
public static ushort ByteToInt8(this byte[] data)
{
if (BitConverter.IsLittleEndian)
Array.Reverse(data);
ushort ilen = BitConverter.ToUInt16(data, 0);
return ilen;
}

原文地址:https://www.cnblogs.com/MarsPanda/p/14830458.html