在QString中推送QChar

时间:2016-01-21 07:26:17

标签: c++ qt qstring qchar

#include <QCoreApplication>
#include <QDebug>

int main(int argc, char *argv[])
{
    QCoreApplication a (argc, argv);

    unsigned char VEL_LEFT = 0;
    VEL_LEFT  = VEL_LEFT | 100;

    QString packet;
    packet.push_back (QChar (VEL_LEFT));

    qDebug () << "VEL_LEFT: " << VEL_LEFT;
    qDebug () << "packet: " << packet;

    return a.exec();
}

这里的目的是通过ORing或AND运算它们,然后将它们存储在一个字符串中。

然后我想把输出读成十进制。

该计划的输出是:

VAL_LEFT: 100
packet: "d"

什么是&#34; d&#34;这里吗?

4 个答案:

答案 0 :(得分:3)

100是您的机器编码小写d字符的方式。所以

ng-click="myStyle.background='...';myStyle.backgroundSize='...'"

相同
char x = 'd';

您可能会将数字与表示混淆。一百是一个数字。它可以表示为字符串&#34; 100&#34;或者通过一百辆汽车或一个句子,例如超过九十九的一个句子。它表示的是数字

&#34; 100&#34;是一种表示。在基数10中,它代表数字100。但在其他表示系统中,它可以代表其他数字。

你让字符串存储了一百个。然后使用系统的角色表示进行打印。那么,你的系统使用百分数表示字符&#34; d&#34;。

你想要你的字符串存储什么?一百?字符&#34; 1&#34;,&#34; 0&#34;,&#34; 0&#34;?或者是什么?

答案 1 :(得分:3)

看起来你想要 packet.push_back (QString::number(VEL_LEFT));

而不是
packet.push_back (QChar (VEL_LEFT));

QString::number取一个数字并返回一个带有该数字表示的字符串 E. g。如果VEL_LEFT等于100,QString::number将返回字符串&#34; 100&#34;。

答案 2 :(得分:0)

我想先通过ORing或AND运算8位。然后我想将它们存储在QString中,然后我想将输出读作“十进制”。

以下作品。

#include <QCoreApplication>
#include <QDebug>

int main(int argc, char *argv[])
{
    QCoreApplication a (argc, argv);

    unsigned char SOP         = 0;
    unsigned char E_STOP      = 0;
    unsigned char DIRECTION   = 0;
    unsigned char VEL_LEFT    = 0;

    QString packet;

    packet.append (SOP);

    E_STOP    = E_STOP | 1;
    packet.append (E_STOP);

    DIRECTION = DIRECTION | 3;
    packet.append (DIRECTION);

    VEL_LEFT  = VEL_LEFT | 100;
    packet.push_back (VEL_LEFT);

    qDebug () << "VEL_LEFT: " << VEL_LEFT;

    qDebug () << "packet0: " << (int)packet[0].toLatin1();
    qDebug () << "packet1: " << (int)packet[1].toLatin1();
    qDebug () << "packet2: " << (int)packet[2].toLatin1();
    qDebug () << "packet3: " << (int)packet[3].toLatin1();

    qDebug () << "packet: " << packet.length();

    return a.exec();
}

答案 3 :(得分:0)

你可能想要的是这个?

px

&#34; 100&#34;是(就像你在键盘上输入一样)a&#34; 1&#34; (ascii 49)接着是两个&#34; 0&#34; (ascii 48)和一个0来确定字符串的结尾。