十六进制 十进制 二进制 转换 及 位移操作。
QString strRec ="FF0102030405060708090A0B0C0D0E0F";
将十六进制字符串转换成十进制
QString str1= strRec.mid(6,4);
将十六进制字符串转换成double类型
double d1= (double)str1.toInt(0,16);
将double类型/100,保留到小数点后3位
QString s1 = QString::number(d1/100,'f',3);
以下举例如何从温湿度传感器解析数据:
double 转 string 保留小数点后1位
//温度传感器数据一般都是十六进制的,如
HEX = 10 06
BIN = 0001 0000 0000 0110
DEC = 4102
对应温度41.02度
ulong tmp = /(uchar)/dataTemp[3]; //第3为10 BIN=0001 0000
tmp<<=8; //向左移8位(高位),后8位给第4用(低位)
tmp |= dataTemp[4]; //按位或操作,将它们合并到tmp变量中
double dTmp = (double)tmp / 100;
QString sTmp = "环境温度 "+QString::number(dTmp,'f',1)+" ℃";
// ui->lbl_Tmp->setText("strCor"); // 环境温度 36.03 ℃