我陷入了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转换无法产生预期的结果。
答案 0 :(得分:7)
您可以使用pack
模块中的unpack
,struct
:
from struct import pack, unpack
b = pack('f', 2.2949836e-38)
print(unpack('i', b)[0])
打印:
16377550
编辑:
简短示例