zoukankan      html  css  js  c++  java
  • 利用memcpy函数实现float到QByteArray的相互转化

    一.为什么要实现float到QByteArry之间的相互转化

    在总线通讯过程中(例如串口通讯),总线上传输的是字节数组变量,即ByteArray型的变量,在Qt中即为QbyteArray型变量。总线发送数据时要将数据转化为QbyteArray再发送,接收数据后要将收到的QByteArray转化为所需的变量类型(如float型变量)。

    memcpy函数是c++中对变量内存进行操作的函数,可以实现ByteArray与不同数据类型之间的相互转化。

    二.具体操作

    (1)QByteArray转化为float

    [html] view plain copy
     
    1. float curveData[14];  
    2. QByteArray inputdata;  //需要提前给inputdata赋值      
    3. memcpy(&curveData,inputdata,56);  

    更一般化(将QByteArray转化为float数组):

    [html] view plain copy
     
    1. QByteArray inputdata;    //需要提前给inputdata 赋值  
    2. float curveData[14];  
    3. memcpy(&curveData,inputdata,sizeof(curveData));  



    (2)   float转化为QByteArray

    [cpp] view plain copy
     
    1. QByteArray outputdata;  
    2. float currentData;  //variables need to be in  
    3. outputdata.resize(sizeof(currentData));    //重新调整QByteArray的大小  
    4. memcpy(outputdata.data(),&currentData,sizeof(currentData));  

    将float数组转化为QByteArray

    [cpp] view plain copy
     
      1. QByteArray outputdata;  
      2. float currentData[3];  //变量需要提前被赋值  
      3. outputdata.resize(sizeof(currentData));  
      4. memcpy(outputdata.data(),&currentData,sizeof(currentData));  

    转自:https://blog.csdn.net/qq_28093585/article/details/78237451

  • 相关阅读:
    【poj3294】 Life Forms
    【poj3415】 Common Substrings
    【poj3693】 Maximum repetition substring
    【bzoj2034】 2009国家集训队—最大收益
    【bzoj4198】 Noi2015—荷马史诗
    【poj2406】 Power Strings
    【ural1297】 Palindrome
    【spoj SUBST1】 New Distinct Substrings
    【poj1743】 Musical Theme
    django rest framework serializers小结
  • 原文地址:https://www.cnblogs.com/liushui-sky/p/9122309.html
Copyright © 2011-2022 走看看