我的资料中有一个八位字节。所以我需要将它转换为QString。
我试过QString str(a);但它不起作用。从我读的八位字节假设是一个无符号字符
a = 'A';
更新: a是八位字节,从我读到的内容开始说"因为DDS_Octet相当于1字节(8位)" (http://community.rti.com/kb/what-max-number-octets-i-can-put-topicdata-builtin-topics)
更新2:
它定义为unsigned char(无符号字节)
答案 0 :(得分:2)
将unsigned char
转换为QString
:
unsigned char a = 'A';
QString str = QString((QChar)a);
答案 1 :(得分:0)
你可能不将八位字节自己转换为QString
。这将产生一些多余的转换。你最好做的是将其转换为Q(Latin1)Char
并使用它,如果你需要将一些字符串操作放在一起。
单独做它看起来不切实际。如果您仍然坚持这一点,请使用QString构造函数,如下所示:
#include <QString>
#include <QDebug>
int main()
{
unsigned char a = 'A';
QString string(a);
qDebug() << string;
return 0;
}
TEMPLATE = app
TARGET = main
QT = core
SOURCES += main.cpp
qmake && make && ./main
"A"
让我不要开始讨论QString要求QCoreApplication实例正常工作,所以请让我们暂时忘掉它。 : - )
这将是开箱即用的,因为QString有constructor that takes QChar并且可以隐式使用,因为QChar有constructor that takes an unsigned char。
顺便说一句,这几天八位字节几乎每字节只有8位。我不担心它的处理方式不同,否则许多软件可能会破坏。只需查看您链接的代码中的代码,是吗?
// DDS_Octet is defined to be 8 bits. If chars are not 8 bits
// on your system, this will not work.