我遇到了一个关于 reinterpret_cast
强制转换运算符的微不足道的问题。基本上,在 CPP 中,我有一个 float
变量,使用 reinterpret_cast
创建一个 uint32_t
变量,如下所示 -
float x = 2.2949836e-38;
uint32_t rgb = *reinterpret_cast<uint32_t*>(&x);
printf("rgb=%d", rgb); // prints rgb=16377550
我希望在Python中实现相同的功能。请注意,传统的int强制转换没有产生预期的结果。
memcpy(&rgb, &x, sizeof(uint32_t))
。它避免了别名问题,而且memcpy函数调用会被优化掉。 - Peter