1

私は次のような構造を持っています:

構造体データ {int no; 文字列名; 整数ID};

この構造をバイト配列に変換しています。これを構造形式に戻す必要があります。そのためには、最初のメンバーを整数と文字列に変換する必要があります。bytearray を構造体に変換する方法は?

4

3 に答える 3

1

答えは、構造体をバイト配列にどのように変換するかによって異なります。理論的には、同じ手順を逆の順序で実行する必要があります。

たとえば、次のように構造をシリアル化するとします。

  • 最初の 4 バイト = いいえ
  • 2 番目の 4 バイト = ID
  • 残りのバイト = 名前の文字のバイト ストリーム

バイト配列を構造体に変換するには、その構造体型の変数を定義し、バイト配列から変換された値をメンバーに割り当てるだけです!

于 2009-02-26T08:11:59.387 に答える
1

BitConverterクラスをチェックしてください。byte 配列を int に変換する方法の例を次に示します。

BitConverterToChar() メソッドがあるにもかかわらず、文字列変換は実際には役に立ちません (Marc がコメントで述べているように)。ASCIIEncoding、または名前空間UTF8Encoding内の他の XxxEncoding クラスのいずれかを代わりに使用できますSystem.Text

これは .Net 固有であることに注意してください。

于 2009-02-26T08:14:07.917 に答える
1

多くのプラットフォームには、この目的のためのツールが含まれていることに注意してください。カスタムの [de]serialization コードを作成することはできますが、すぐに面倒になる可能性があります。

たとえば、Google のプロトコル バッファは、ワイヤ形式を記述するための言語に依存しない* メカニズムです。すべてを手作業で行うと、技術的にはより良い (より小さな) シリアル化を実現できますが、より多くの作業が必要になります...

*= Google レポジトリの c++、java など -コミュニティによるその他多数

于 2009-02-26T08:15:39.393 に答える