zoukankan      html  css  js  c++  java
  • 浮点数转字节组存储

           浮点数转字节组存储,主要用于嵌入式等一些特殊情况,比如串口传数据,其主要思路是将浮点数(通常为4字节),每个字节单独传送,到接收端再将它们组合成一个浮点数即可。在C语言中,我们可以采用union方式实现。

    union f_data
    {
    float fdata;
    unsigned char cdata[4];
    }data; //单精度的浮点数,便于拆分字节

    //如果是双精度的则定义为
    //union f_data
    //{
    //double fdata;
    //unsigned char cdata[8];
    //}data;

    //下面为发送
    void send_data(void)
    {
    data.fdata = 3.14159;
    send(data.cdata[0]);
    send(data.cdata[1]);
    send(data.cdata[2]);
    send(data.cdata[3]);
    }

    //则接收程序如下
    void receive_data(void)
    {
    data.cdata[0] = receive_byte();
    data.cdata[1] = receive_byte();
    data.cdata[2] = receive_byte();
    data.cdata[3] = receive_byte();
    }
    //接收到的数据为data.fdata;

    特别注意:

    如果发送端和接收端遵循的浮点规则相同,发送和接收的顺序必须一样,顺序、倒序甚至是乱序都无所谓,只要发送和接收两者相同即可

    如果两台机器浮点数遵循的标准不一样,则需要调整一些接收字节的顺序


     

  • 相关阅读:
    Python中使用PyMySQL
    python实现通用json导入到mysql
    python实现通用excel导入到mysql
    java优化几个小步骤
    日志添加request-id
    Nginx优化
    tomcat8 性能优化参考
    excel空格处理
    spring boot swagger ui使用 nginx 部署后无法使用问题
    Swagger2多包扫描
  • 原文地址:https://www.cnblogs.com/pangblog/p/3299305.html
Copyright © 2011-2022 走看看