QT:各种数据转换

本文详细介绍了在Qt中使用QString进行不同进制转换的方法,包括16进制到10进制,10进制到16进制,ASCII值转换,以及Int、Long、Double与QString之间的相互转换。还涉及了QString与char*及QByteArray的转换操作。

目录

16进制(QString)转为10进制

10进制转16进制(QString)

10进制转ASCII值

Int,Long,Double转QString(十进制、十六进制)

QString转int、double、float、long

QString转char*

QString转QByteArray

QByteArray转QString


16进制(QString)转为10进制

QString str="FF";
bool ok;
int dec=0;
dec=str.toInt(&ok,16);//表示从16进制转为十进制 dec=255,ok=true

使用toInt()函数,第二个参数表示当前数的进制数。


10进制转16进制(QString)

QString str;
int dec=10;
str=QString("%1").arg(dec, 4, 16, QLatin1Char('0'));//从十进制转16进制,保留4位;

第二个参数表示保留几位,第三个参数表示转为几进制。


ASCII转十六进制

int dec;
char st;
QString str_ascii,str_hex;
dec=str_ascii.toInt(0,16);//将ASCII码当作十六进制转十进制
st=dec;//十进制用char类型标识,直接转为十六进制
str_hex.append(QString(st));//转为十六进制的字符串(可拼接)

Int,Long,Double转QString(十进制、十六进制)

使用QString::number(),第二个参数表示转为几进制,第三个参数表示精度。

long a = 63;  
QString s = QString::number(a, 10);             // s == "63"  
QString t = QString::number(a, 16).toUpper();     // t == "3F"

double c = float(a) / float(b) ;
QString d = QString::number(c,10,4);

QString转int、double、float、long

使用QString的函数


QString转char*

QString qstr("hello,word");  
const char * p = qstr.toLocal8Bit().data(); //方法1

const char *p = qstr.toStdString().data(); //方法2

QString转QByteArray

QString str("hello");  
QByteArray bytes = str.toUtf8(); //方法1  UTF-8编码
                                 //.toUtf8()是本地操作系统设置的字符集编码

QString str("hello");  
QByteArray bytes = str.toLatin1();//方法2 ASCII编码(不包含中文)

QByteArray转QString

QByteArray bytes("hello world");
QString string = bytes;   //方法1
 
QByteArray bytes("hello world");
QString string;
string.prepend(bytes);    //方法2
                          //prepend()表示在开头位置插入
                          //append()表示在末尾位置插入

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值