gpt4 book ai didi

c# - 进/出 .NET 的二进制协议(protocol)(C# 语法)

转载 作者:行者123 更新时间:2023-11-30 21:16:30 28 4
gpt4 key购买 nike

我想听听您如何解决这种编程任务!?每种类型(OPER = 1 类型)对应一种特定的信息。

这只是大约 10 个具有相同结构的规范之一。首选创建这些“转换器”(协议(protocol))的通用方法。

Protocol specification

最佳答案

如果你正在读/写这个,我会简单地在 Stream 级别翻译它,比如:

int b = source.ReadByte();
if (b < 0) throw new EndOfStreamException();
int operx = b & 15;
int oper = (b >> 4) & 15;
b = source.ReadByte();
if (b < 0) throw new EndOfStreamException();
int prefix = b & 7;
int reg = (b >> 3) & 31;
b = source.ReadByte();
if (b < 0) throw new EndOfStreamException();
int period = b & 7;
int fas = (b >> 3) & 3;
int tar = (b >> 5) & 7;

如果您正在做很多,您可以将它包装成更优雅的东西,也许使用属性来指定偏移量 - 但对于 10?嗯……不值得。编写一个健壮的通用转换器是大量的艰苦工作。

关于c# - 进/出 .NET 的二进制协议(protocol)(C# 语法),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5179515/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com