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;
}

 

posted on 2021-05-31 10:53  火星大能猫  阅读(1664)  评论(0编辑  收藏  举报