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

标签 asp.net-core .net-core

有没有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/

相关文章:

asp.net-mvc - Blazor WASM 页面路由

asp.net-core - aspnet 核心 2.0 dotnet 运行时出现警告

c# - ManualResetEventSlim.Set() 并不总是解锁任务内的等待

asp.net-core - ASP.NET Core 模板 3.1.5 - serviceDependencies.json

exception-handling - 点网核心 : OnException method in a custom filter is called two times

asp.net-mvc - 覆盖默认身份表名称

.NET Core 2.0 ASP.NET MVC 下载文件和调用文件保存对话框

javascript - 如何将配置值从 Asp.Net Core MVC 2.0 配置文件推送到 React TypeScript 客户端脚本?

按钮提交前的 Javascript 函数

c# - Windows .NET Core的Windows窗体设计器和WPF设计器