本文为学习记录,若有错误,请联系作者,谦虚受教
文章目录
前言
你主要的问题在于读书太少而想得太多
一、转换十六进制
方法1、
int n1=this->ui->speed->text().toInt();
QString hex=QString("%1").arg(n1,4,16);//加上QLatin1Char('0'),不足补0
方法2、
int n1=this->ui->speed->text().toInt();
QString a=QString::number(n1,16);
方法3、
uchar speedBuf[]={0};
QString str =this->ui->speed->text();//获取发送的信息
QString hex = QString("%1").arg(str.toInt(), 4,16,QLatin1Char('0'));//不足补0
uchar u1 = uchar(hex.left(2).toInt(nullptr,16));//前两位
uchar u2 = uchar(hex.right(2).toInt(nullptr,16));//后两位
speedBuf[3]=u2;
二、uchar->float
uchar rs[4];
rs[0]=rcvBuf[6];
rs[1]=rcvBuf[7];
rs[2]=rcvBuf[8];
rs[3]=rcvBuf[9];
float FF_Co2;
memcpy_s(&FF_Co2,sizeof (float),rs,4);
QString Str_Co2 = QString::number(FF_Co2);
ui->gas11->setText(Str_Co2);
三、float->string
float FF_Co2;
QString Str_Co2 = QString::number(FF_Co2);
四、QByteArray->char*
1 char *ch;//不要定义成ch[n];
2 QByteArray byte;
3 ch = byte.data();
五、char*->QByteArray
1 char *ch;
2 QByteArray byte;
3 byte = QByteArray(ch);
六、string->char*
// string转char *
string st = "My test";
char *st1 = const_cast<char *>(st.c_str()) ;
七、char*->string
// char*转换为string
// (注意,定义char *变量,并直接赋值,最好定义为const变量,否则编译器警告)
const char *st = "hello";
// 赋值转换
string st1 = st;
cout << st1 << endl;
// 构造转换
string s1(st, st + strlen(st));
总结
善于总结,多进一步。