QT:各种数据转换

目录

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的函数

QT:各种数据转换_第1张图片


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()表示在末尾位置插入

你可能感兴趣的:(QT,qt,开发语言)