union數據轉換 & 四字節轉float


1.利用union進行數據轉換

union即為聯合,它是一種特殊的類。通過關鍵字union進行定義,可以進行數據轉換

16進制字符串字節轉化為十進制數

 typedef union DATA_TO_BYTE
 {
 uint16_t data16;
 unsigned char b[2];
 }TO_TWO_BYTE;
 TO_TWO_BYTE x;
 x.b[0] = (unsigned char)0x00;//低8位
 x.b[1] = (unsigned char)0x16;//高8位
 std::cout<<x.data16<<std::endl;

輸出結果為5632

2.四字節與float轉換

參考鏈接:https://blog.csdn.net/senkkes/article/details/50353316

  // char to float
  char sBuf[4];
  sBuf[0] = 0xc9;
  sBuf[1] = 0x4f;
  sBuf[2] = 0x7d;
  sBuf[3] = 0x43;
  float zx = *(float *)(sBuf);
  std::cout<< zx <<std::endl;//終端輸出為253.312

  // float to char
  float wTemp = 50;
  char  sBuf1[4];
  char* temp;
  memset(sBuf1, 0, sizeof(sBuf1));

  temp     = (char *)(&wTemp);
  sBuf1[0] = temp[0];
  sBuf1[1] = temp[1];
  sBuf1[2] = temp[2];
  sBuf1[3] = temp[3];


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM