gpt4 book ai didi

python - 将负 float 转换为无符号整数

转载 作者:太空宇宙 更新时间:2023-11-04 07:25:56 25 4
gpt4 key购买 nike

我正在尝试将无符号整数数据从 C 服务器发送到 Python 客户端。要求是向客户端发送负浮点值。目前这个数字是-5.700,我有两个问题。1) 我不知道如何在 uint32_t 中保留负值,我使用 MSB 作为标志位来绕过它。这样可以吗?有没有人有更好的建议?

2) 我尝试将 float 5.700 类型转换为 uint32_t,即 uint32_t fops = *(uint32_t*)(&float_var)//float_var 为 5.700 并且 fops 被分配值 0x00..40b66666 被发送到 python 客户端。现在如何从客户端的这个值中取回 float ?

更新:正如 Mats 建议的那样,python struct unpacks -ve 完美 float ,因此无需使用标志位。

最佳答案

最简单的解决方案几乎总是最好的:将其设为字符串并传输,而不是二进制浮点表示。这样,您就不必担心浮点表示的差异或如何让 Python “理解”您的二进制浮点值。

Edit1:但是,如果将 32 位整数传输到 Python data 对象:我希望 floatdata = struct.unpack("f", data) 应该做的伎俩。

Edit2:struct.unpack 的文档(和 struct.pack)

Edit3:struct.unpack 假设两台机器使用相同的浮点格式。这意味着该软件不能广泛移植。但它应该可以在大多数常用平台上正常工作。

关于python - 将负 float 转换为无符号整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18412858/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com