有没有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 开始,静态类中就有了一个统一的 API System.Buffers.Binary.BinaryPrimitives
它包含用于 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... 方法
关于asp.net-core - .Net Core 中的 Big-Endian 处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30326514/