QT 串列埠接收的16進製制資料轉float

2021-07-03 06:18:03 字數 618 閱讀 1162

接收的資料採用qbytearray接收:

qbytearray bytearray = ba;                    ba是讀取到的資料如(08 01 15 c3 c8 71 40 5a)其中08 01 15是表頭資訊,c3 c8 71 40是需要的資料,最後一位不管

qdatastream out(&bytearray,qiodevice::readwrite);    //將位元組陣列讀入

qint8 outchar = 0;

qstring str;

qstring strinfo;

out >> outchar;

out >> outchar;

out >> outchar;

str = qstring("%1").arg(outchar&0xff,2,16,qlatin1char('0'));        //判斷是否是需要的資料

if( str != "15" )

return;

union myunion

float_data;

for( int i = 0; i < 4; i++ )

float m_vol;

m_vol = float_data.f;

socket 傳送接收16進製制資料

背景 做了個智慧型櫃管理系統,需要和智慧型櫃對接。互動使用的是socket。轉換邏輯 傳送規則 資料 1 16進製制 0x01 高4位 0x00 低四位 0x01 10進製 0 1 ansi碼 48,49 16進製制 0x30,0x31 傳送 ansi如圖 傳送接收資料 start為碼頭,end為碼...

16進製制轉8進製

很有意思。開始沒注意題直接 x o 然後看到了 這個16進製制的數長度不超過100000 妥妥又是高精度問題。還有個錯誤就是把二進位制左右反了,導致半天找不出錯。然後就把二進位制打出來,找到了。大體思路就是16 2 8 如 f 1111 17 ff 1111 1111 011 111 111 377...

16進製制轉8進製

16進製制轉8進製 思路 16進製制轉成2進製串,2進製串從後每3位轉成8進製串 include include define maxn 10 define maxlength 100000 int main else bi k 0 if temp 4 else bi k 0 if temp 2 e...