假设我在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
答案 0 :(得分:3)
我会用python struct以不同的方式解释位。
类似于将-12打印为无符号整数
import struct
p = struct.pack("@i", -12)
print("{}".format(struct.unpack("@I",p)[0]))