Python中C ++联合的等价物

时间:2017-03-10 14:07:48

标签: python c++ python-2.7

假设我在C ++中有以下代码:

union {
    int32_t i;
    uint32_t ui;
};

i = SomeFunc();
std::string test(std::to_string(ui));
std::ofstream outFile(test);

并说我在Python中以某种方式获得了i的值,我怎样才能获得该文件的名称?

对于那些不熟悉C ++的人。我在这里做的是将signed 32位整数格式的一些值写入i,然后将按位表示解释为unsigned 32位整数在ui。我采用相同的32位并以两种不同的方式解释它们。

我怎样才能在Python中执行此操作? Python中似乎没有任何明确的类型规范,那么如何以不同的方式重新解释某些位?

编辑:我使用的是Python 2.7.12

1 个答案:

答案 0 :(得分:3)

我会用python struct以不同的方式解释位。

类似于将-12打印为无符号整数

import struct
p = struct.pack("@i", -12)
print("{}".format(struct.unpack("@I",p)[0]))