简单数据转化

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;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

祝云飞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值