千家信息网

C/C++中double与byte数组互转的方法

发表于:2025-02-08 作者:千家信息网编辑
千家信息网最后更新 2025年02月08日,这篇文章主要介绍"C/C++中double与byte数组互转的方法",在日常操作中,相信很多人在C/C++中double与byte数组互转的方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作
千家信息网最后更新 2025年02月08日C/C++中double与byte数组互转的方法

这篇文章主要介绍"C/C++中double与byte数组互转的方法",在日常操作中,相信很多人在C/C++中double与byte数组互转的方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"C/C++中double与byte数组互转的方法"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

本文包含了C/C++中byte(unsigned char)类型与double数组互转的方法,参见本文的最后两个方法,亲测可行。

#include #include #include typedef unsigned char byte;typedef struct {    int precession;    double value;}ConstantValue;byte int2Byte(int intVal);void double2bytes(double data, byte* bytes);double bytes2double(byte bytes[]);std::vector convert2Byte(ConstantValue cv);using namespace std;/**double convert to bytesrefers to struct body attribute*/int main(){    ConstantValue cv1, cv2;    cv1.precession = 10;    cv1.value = 36.32598;    cv2.precession = 15;    cv2.value = 271.15801;    vector cv1Byte = convert2Byte(cv1);    vector cv2Byte = convert2Byte(cv2);     for(int i = 0; i < cv1Byte.size(); i++){        cout<<"------"<<(int)cv1Byte[i]< convert2Byte(ConstantValue cv){    vector vecData;    vecData.push_back('I');//data type        vecData.push_back('N');//data type    vecData.push_back(int2Byte(cv.precession));//data type//    byte *valByte = double2bytes(cv.value);    byte valByte[8];    double2bytes(cv.value, valByte);        for(int i = 0; i < 8; i++){                vecData.push_back(valByte[i]);//data type    }    return vecData;}/** *  c++ double type length is 8 byte  */void double2bytes(double data, byte bytes[]){    int i;    char* p = (char*)&data;     for(i=0; i<8; i++)    {        bytes[i] = *p++;      }}/** * convert byte array to double type */double bytes2double(byte bytes[]){    double data = *((double *)bytes);      return data;}

到此,关于"C/C++中double与byte数组互转的方法"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

0