【问题标题】:apache thrift, serialize unsignedapache thrift,序列化无符号
【发布时间】:2013-09-16 12:02:16
【问题描述】:

目前我需要在 C++ 和 Python 应用程序之间传输数据。

只要 Thrift 不支持 unsigned int,那么转移 unsigned 的最佳方式是什么?

只有这样的方法吗:

  1. 将未签名分配给已签名
  2. 序列化->发送->接收->反序列化这个签名
  3. 将有符号分配给无符号

我应该一直手动执行还是已经有一些第三方库?

对于 C++/Python 应用程序,我该怎么做?在 C++/C++ 应用程序中,我只能 static_cast<signed/unsigned>(unsigned/signed) 进行转换,但是 Python 呢?

【问题讨论】:

    标签: c++ python serialization thrift


    【解决方案1】:

    有两个有意义的选项(以及许多其他选项):

    1. 在 Thrift 中使用下一个最大的有符号整数。当然,使用 UINT64 这是不可能的,因为没有 i128,但它可以工作到 UINT32
    2. 将无符号位转换为有符号位。不是很干净,需要文档,但它可以工作。

    “其他人”包括

    • 将其转换为字符串并返回。看着你的表现下降。
    • 使用二进制类型。好的,这有点远,但仍然有可能,只需像上面的 2 一样重新解释这些位即可完成

    但我还是推荐 1. 或 2.

    【讨论】:

      猜你喜欢
      • 2015-06-07
      • 1970-01-01
      • 2016-03-24
      • 2016-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-14
      • 2019-08-11
      相关资源
      最近更新 更多