1

我的结构如下:

结构数据{int no; 字符串名称;int id};

我正在将此结构转换为字节数组。我需要将其转换回结构格式。为此,我需要将第一个成员转换为整数和字符串。如何将字节数组转换为结构?

4

3 回答 3

1

那么答案实际上取决于您如何将结构转换为字节数组。理论上,您将需要以相反的顺序执行相同的步骤!

例如,如果您将结构序列化为:

  • 前 4 个字节 = 否
  • 第二个 4 字节 = id
  • 剩余字节 = 名称中字符的字节流

然后要将字节数组转换回结构,您只需要定义该结构类型的变量并为成员分配从字节数组转换而来的值!

于 2009-02-26T08:11:59.387 回答
1

查看BitConverter课程。这是一个如何将字节数组转换为 int的示例。

因为字符串转换BitConverter并不是真正有用的(正如 Marc 在他的评论中提到的那样),即使它具有 ToChar() 方法。您可以使用ASCIIEncoding,UTF8Encoding或命名空间中的任何其他 XxxEncoding 类System.Text

请注意,这是 .Net 特定的。

于 2009-02-26T08:14:07.917 回答
1

请注意,许多平台都包含用于此目的的工具;虽然您可以编写自定义 [反] 序列化代码,但它很快就会变得乏味。

例如,google 的协议缓冲区是一种与语言无关的*机制,用于描述有线格式。如果您手动完成所有操作,您可以在技术上获得更好(更小)的序列化,但这将是更多的工作......

*= c++, java, etc in the google repo - plus lots more by the community

于 2009-02-26T08:15:39.393 回答