2

現在、C++ と Python アプリケーションの間でデータを転送する必要があります。

Thrift が で動作しない限り、unsigned int転送する最良の方法は何unsignedですか?

次のような唯一の方法はありますか:

  1. unsigned を signed に割り当てる
  2. シリアル化 -> 送信 -> 受信 -> 署名されたこの署名を逆シリアル化
  3. 符号付きを符号なしに割り当てる

常に手動で行う必要がありますか、それともサードパーティのライブラリが既にいくつかありますか?

C++/Python アプリケーションの場合はどうすればいいですか? C++/C++ アプリケーションでstatic_cast<signed/unsigned>(unsigned/signed)は、変換のみを行うことができますが、Python はどうでしょうか?

4

1 に答える 1

3

理にかなっている 2 つのオプション (およびその他のオプション) があります。

  1. Thrift で次に大きい符号付き整数を使用します。もちろん、UINT64ではi128がないためこれは不可能ですが、UINT32までは機能します
  2. 符号なしビットを符号付きにキャストします。あまりきれいではなく、ドキュメントが必要ですが、機能します。

「他の人の束」には次のものが含まれます

  • それを文字列に変換して戻します。そして、パフォーマンスが低下するのを見てください。
  • バイナリ型を使用します。わかりました、それは少し遠いですが、まだ可能であり、上記の 2 のようにビットを再解釈するだけで実行できます。

繰り返しになりますが、1 または 2 をお勧めします。

于 2013-09-12T18:47:35.090 に答える