我需要把int换成byte[],一种方法是用BitConverter.GetBytes().但我不确定这是否符合以下规范:

XDR带符号整数是一个32位的数据,它在

来源:RFC1014 3.2

我如何进行int到byte的转换以满足上述规范?

推荐答案

RFC只是想说一个有符号整数是一个普通的4字节整数,字节以大端排序.

现在,你很可能在一台小小的endian机器上工作,BitConverter.GetBytes()会给你byte[]个倒数.所以你可以试试:

int intValue;
byte[] intBytes = BitConverter.GetBytes(intValue);
Array.Reverse(intBytes);
byte[] result = intBytes;

但是,为了使代码具有最好的可移植性,您可以这样做:

int intValue;
byte[] intBytes = BitConverter.GetBytes(intValue);
if (BitConverter.IsLittleEndian)
    Array.Reverse(intBytes);
byte[] result = intBytes;

.net相关问答推荐

[x.x.x,)在Packages.lock.json依赖项中是什么意思?

如何查询 DOTNET_CLI_TELEMETRY_OPTOUT 是否永久设置为 TRUE?

使用 Task.WhenAll 但需要跟踪每个单独的 Task 的成功

即时窗口中的动态导致Microsoft.CSharp.RuntimeBinder.Binder未定义或导入错误

.NET - WindowStyle = hidden 与 CreateNoWindow = true?

比较 C# 中的双精度值

将 BitmapImage 转换为 Bitmap,反之亦然

Unity 2.0:如何使用 Resolve 和 ResolverOverride?

我可以从我的应用程序中抛出哪些内置 .NET 异常?

ReaderWriterLock 与锁{}

为什么 ?: 会导致转换错误,而 if-else 不会?

如何正确停止BackgroundWorker

实体框架 - 无法将 lambda 表达式转换为类型字符串,因为它不是委托类型

基于多个字符分隔符拆分字符串

ObservableCollection<> 与 List<>

.Net 中 AOP 的最佳实现是什么?

绑定到不在列表中的值的可编辑组合框

将控制台输出镜像到文件

可以从 C# 调用 C++ 代码吗?

C#/.NET 中仅命名空间的类可见性?