qt常用数据类型转换

1、int转QString

quint8转QString

quint8 k = 77;
QString str_1;
str_1 = QString::number(k, 10);
qDebug() << str_1;      // "77"
QString str_2 = QString("%1").arg(k);
qDebug() << str_2;      // "77"

2、quint8转QByteArray

QByteArray all;
quint8 head = 0XFF;
all.append(head);
qDebug() << all;    //"\xFF"

3、quint8转QByteArray再转quint8

QByteArray all;
quint8 head = 65;
all.append(head);
qDebug() << all;    //"A" // 可以看出是ascii码的值,65对应A
QByteArray temp = all.mid(0, 1);
qDebug() << temp;   //"A"
char* data = temp.data();
qDebug() << data;   //A
quint8 i = (quint8) data[0];
qDebug() << i;      //65

4、QByteArray转char*

QByteArray b("123");
qDebug() << b;      //"123"
char* d = b.data();
qDebug() << d;      //123

5、quint8转QByteArray(感觉QByteArray.toInt()等方法很不好用。。)

quint8 q = 65;
QByteArray b;
b.setNum(q, 10);
qDebug() << b;  //"65"
qDebug() << "int:" << b.toInt() << " hex:" << b.toHex();    //int: 65  hex: "3635" 
// int转成功了,但是hex...额,没有看懂

6、QString转char*

QString str("123");
std::string temp = str.toStdString();
const char* constChar = temp.c_str();
char* result = new char[strlen(constChar) + 1];
strcpy(result, constChar);
qDebug() << result;     //123

7、quint16转char*

quint16 code = 9299;
char buff[3];
memcpy(buff,&code,sizeof(quint16));
qDebug() << buff;   //S$

8、char*转quint16

// buff为上一点中的数据
quint16 res = *((quint16*)buff);
qDebug() << res; //9299

9、quint16转QByteArray再转quint16

QByteArray q;
quint16 code = 9299;
char buff[3];
memcpy(buff,&code,sizeof(quint16));//quint16转char*
qDebug() << buff;   //S$

q.append(buff);     //char*转为QByteArray
char *temp = q.data();  // QByteArray转char*

quint16 res = *((quint16*)temp);// char*转quint16
qDebug() << "size:" << q.length() << " byte:" << q << " res:" << res;//size: 2  byte: "S$"  res: 9299

 

持续更新中。。

转载于:https://my.oschina.net/htzy/blog/658876

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值