public enum DataFormat
{
ABCD,
BADC,
CDAB,
DCBA
}
#region 自定义截取字节数组
private byte[] GetByteArray(byte[] dest, int start, int length)
{
if (dest != null && dest.Length >= start + length)
{
byte[] result = new byte[length];
Array.Copy(dest, start, result, 0, length);
return result;
}
else
{
return null;
}
}
#endregion
#region 带数据格式的4个字节数组截取
private byte[] Get32ByteArray(byte[] dest, int start, DataFormat dataFormat)
{
byte[] resultTemp = GetByteArray(dest, start, 4);
byte[] result = new byte[4];
if (resultTemp != null)
{
switch (dataFormat)
{
case DataFormat.ABCD:
result[0] = resultTemp[3];
result[1] = resultTemp[2];
result[2] = resultTemp[1];
result[3] = resultTemp[0];
break;
case DataFormat.BADC:
result[0] = resultTemp[2];
result[1] = resultTemp[3];
result[2] = resultTemp[0];
result[3] = resultTemp[1];
break;
case DataFormat.CDAB:
result[0] = resultTemp[1];
result[1] = resultTemp[0];
result[2] = resultTemp[3];
result[3] = resultTemp[2];
break;
case DataFormat.DCBA:
result[0] = resultTemp[0];
result[1] = resultTemp[1];
result[2] = resultTemp[2];
result[3] = resultTemp[3];
break;
default:
break;
}
return result;
}
else
{
return null;
}
}
#endregion
#region 带数据格式的2个字节数组截取
private byte[] Get16ByteArray(byte[] dest, int start, DataFormat dataFormat)
{
byte[] resultTemp = GetByteArray(dest, start, 2);
byte[] result = new byte[2];
if (resultTemp != null)
{
switch (dataFormat)
{
case DataFormat.CDAB:
case DataFormat.ABCD:
result[0] = resultTemp[1];
result[1] = resultTemp[0];
break;
case DataFormat.DCBA:
case DataFormat.BADC:
result[0] = resultTemp[0];
result[1] = resultTemp[1];
break;
default:
break;
}
return result;
}
else
{
return null;
}
}
#endregion
调转大小端
最新推荐文章于 2023-06-01 09:32:07 发布