目前我需要在 C++ 和 Python 应用程序之间传输数据。
只要 Thrift 不适用于 unsigned int
, 最好的转账方式是什么 unsigned
?
是否只有这样的方法:
- 将无符号赋值给有符号
- 序列化 -> 发送 -> 接收 -> 反序列化此签名
- 将有符号赋值给无符号
我应该一直手动执行还是已经有一些第三方库?
对于 C++/Python 应用程序,我该如何做?在 C++/C++ 应用程序中,我可以 static_cast<signed/unsigned>(unsigned/signed)
进行转换,但是 Python 呢?
最佳答案
有两个有意义的选项(以及许多其他选项):
- 通过 Thrift 使用下一个最大的有符号整数。当然,对于 UINT64 这是不可能的,因为没有 i128,但它可以工作到 UINT32
- 将无符号位转换为有符号位。不是很干净并且需要文档,但它可以工作。
“其他一些”包括
- 将其转换为字符串并返回。并观察你的表现下降。
- 使用二进制类型。好吧,这有点遥远,但仍然是可能的,只需像上面 2 那样重新解释这些位即可完成
但我再次推荐 1 或 2。
关于c++ - apache thrift,序列化未签名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18758535/