python - 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 强制转换不会产生预期的结果。
解决方案
您可以使用pack
,unpack
从struct
模块:
from struct import pack, unpack
b = pack('f', 2.2949836e-38)
print(unpack('i', b)[0])
印刷:
16377550
编辑:
缩短的例子
推荐阅读
- database - 在 wordPress 中自动动态创建页面
- java - Java Money 奇数除法和四舍五入不损失/获得美分
- server - Indy IdTCPServer 问题
- arrays - purescript:混合效果和数组上下文
- javascript - 使用数组的所有名称和计数构建 Javascript 对象
- javascript - Graphql的返回查询为空时如何在Nuxtjs中进行重定向
- python - 无法正确实现 wiki 搜索。按查询搜索结果不起作用
- python - Python War纸牌游戏运行正常但无限
- git - 为什么 git pack 协议只协商包文件协商期间要发送的提交?
- linux - 如何在后台运行 Webpack 服务命令?