什么是CPP的Python等效reinterpret_cast

时间:2018-07-24 15:35:24

标签: python

我陷入了reinterpret_cast强制转换运算符的琐碎问题中。基本上,在CPP中,我有一个float变量,它用于使用uint32_t创建一个reinterpret_cast变量,如下所示-

float x = 2.2949836e-38;
uint32_t rgb = *reinterpret_cast<uint32_t*>(&x);
printf("rgb=%d", rgb); // prints rgb=16377550

我想在python中实现相同的目的。请注意,传统的int转换无法产生预期的结果。

1 个答案:

答案 0 :(得分:7)

您可以使用pack模块中的unpackstruct

from struct import pack, unpack

b = pack('f', 2.2949836e-38)
print(unpack('i', b)[0])

打印:

16377550

编辑:

简短示例