微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

asp.net-core – .Net Core中的Big-Endian处理

是否有BitConverter或其他支持.Net Core的类,我可以读取整数和其他值作为Big Endian编码?

我不需要编写一组辅助方法

int GetBigEndianIntegerFromByteArray(byte[] data,int startIndex) {
    return (data[startIndex] << 24)
         | (data[startIndex + 1] << 16)
         | (data[startIndex + 2] << 8)
         | data[startIndex + 3];
}

解决方法

从.NET Core 2.1开始,在静态类System.Buffers.Binary.BinaryPrimitives中有一个统一的API

它包含ReadOnlySpan的API和原始类型的直接反字节序(short / ushort,int / uint,long / ulong)

private void GetBigEndianIntegerFromByteArray(ReadOnlySpan<byte> span,int offset)
{
    return BinaryPrimitives.ReadInt32BigEndian(span.Slice(offset));
}

System.Buffers.Binary.BinaryPrimitives类是.NET Core 2.1的一部分,不需要NuGet包

此类还包含Try …方法

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐