1.控制台输出
可以使用qDebug来实现往控制台输出信息。
qDebug的函数原型:
qDebug(const char* message,…)
可以像C语言的printf()函数一样实现格式化输出,例如:
qDebug(“I have %d apples!”,5);
如果包含QtDebug头文件,
#include <QtDebug>
则可以使用类似如下的语法更方便的写输出语句
qDebug()<<"I have"<<5<<"apples!";
2.int和char,unsigned char转化
先看一个例子:
int nParam = 253;
char ch = nParam;
unsigned char uch = nParam;
qDebug()<<"ch ="<<(int)ch;
qDebug()<<"uch ="<<(int)uch;
可以看看它的输出结果:
然后来分析下:
253整形值在赋给ch和uch的时候就剩一个字节了,其中这个字节的二进制表示为:1111 1101.
对于unsigned char很好理解,因为它是无符号的整形数,所以1111 1101中的最高位1不在表示符号,可以直接参与计算,所以它的值就是:
1*2^7 + 1*2^6+ 1*2^5+ 1*2^4+ 1*2^3+ 1*2^2+ 0*2^1+ 1*2^0
就是253.
那么对于char来说,其最高位1代表了符号位,表示是个负数,那么此时的计算方式简单说就是对1111 1101,保证符号位1不变,其余部分取反,最后再加1,计算过程如下:
取反操作:10000010
加1操作: 10000011
这时它的结果就是:
-(0*2^6+ 0*2^5+ 0*2^4+ 0*2^3+ 0*2^2+ 1*2^1+ 1*2^0) = -3
3.QString转int,int转QString
int转QString
int n = 253;
QString str1 = QString::number(n);
QString转int
QString str2 = QObject::trUtf8("352");
int t = str2.toInt();
4.float转QString,QString转float
float转QString
float f = 2.56;
QString str = QString("%1").arg(f);
QString转float
QString strFloat = QObject::trUtf8("2.56");
float f2 = strFloat.toFloat();
5.double转QString,QString转double
实现方式类似方法4中的float和QString转化
6.char* 转QString,QString转char*
char* 转QString
char* chStr = "Hello world!";
QString str3 = QString(chStr);
qDebug()<<str3;
QString转char*
QString str4 = QObject::trUtf8("I like apples!");
QByteArray qba = str4.toLatin1();
char* data = qba.data();
qDebug()<<data;