首页 > 解决方案 > CPP reinterpret_cast 的 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 强制转换不会产生预期的结果。

标签: python

解决方案


您可以使用pack,unpackstruct模块:

from struct import pack, unpack

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

印刷:

16377550

编辑:

缩短的例子


推荐阅读