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;

    特别注意:

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

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


     

  • 相关阅读:
    telnet
    lrzsz工具小问题处理
    1 Boost 安装简介
    klbostee/dumbo
    《笨办法学 C 语言》翻译项目
    关注生成器
    PHP学习之三:变量
    HTML5新书三章大纲分享
    C# 处理 google map 经纬度偏移量
    Jquery 的百度地图应用
  • 原文地址:https://www.cnblogs.com/pangblog/p/3299305.html
Copyright © 2011-2022 走看看