我在不同类型之间转换数据时遇到问题。我知道有很多关于这个主题的问题和方法,但是我无法在这些问题上取得成功。
我有一个使用字节数组的传输线。我有浮点值,将它们放入一个字节数组,发送它们然后将它们转换回浮点数。我太容易了。
我已经尝试过工会,演员和不同的事情,然后达到最低级别的memcpy和bitshifts,但仍然只是****
可以将其缩小到下面的例子。据我了解,此过程应将float值转换为字节数组并返回。
float32_t value;
byte dataPacket[20] = {0};
value = 500.0; /
memcpy(&dataPacket[0], &value, 4);
value = (dataPacket[0]<<24)| (dataPacket[1]<<16) | (dataPacket[2]<<8) | dataPacket[3]);
谁能告诉我哪里错了?
我知道可能有更简单的方法可以做到这一点,但我不明白为什么这样做不会起作用: - (
感谢您的帮助!
编辑:
由于我认为存在问题,因此位移是用于验证字节缓冲区的内容。在我的应用程序中,字节数组被发送到Android设备。那里的数组被放入一个字节缓冲区。然后我可以轻松输出浮点值。我得到的值与上面示例中的bitshift操作给出的值相同。所以我假设数据没有正确存储在字节数组中。
我希望这是可以理解的。有时我在使用英语时会有点困惑。请问是否有不明确的事情。