• 5424阅读
  • 3回复

[提问]请教各位大虾关于qbytearray的元素最高位问题! [复制链接]

上一主题 下一主题
离线yenson
 
只看楼主 倒序阅读 楼主  发表于: 2011-08-01
— 本帖被 XChinux 从 C/C++基础 移动到本区(2011-08-01) —
    QByteArray a;    bool ok;    QString whole="7F";    a.resize(2);    a[0]=whole.toInt(&ok, 16);    qDebug()<<QString::number(a[0],16).toUpper();这时输出“7F”没有错,但如果把程序中的“7F”改为“80”,则程序输出的是:FFFFFFFFFFFFFF80。请问这时什么原因啊?该怎么改才能正确输出“80”啊?
谢谢!
离线dbzhang800

只看该作者 1楼 发表于: 2011-08-01
和QByteArray没什么关系,

你不解的只是
QString::number('\x80',16);
的结果为什么是 "ffffffffffffff80" ?而不是 "80"

不过想得到后者也简单
QString::number((uchar)'\x80',16);
离线yenson
只看该作者 2楼 发表于: 2011-08-02
回 1楼(dbzhang800) 的帖子
谢谢你的回复。请问详细原因是什么呢?是不是输出格式的问题呢?再请教一下,您的这个表示方法‘\x80’是什么意思啊?如果直接是‘0x80’的话,就输出这个东西:"30783830",请问是怎么回事呢?不好意思,请指点一下!
离线dbzhang800

只看该作者 3楼 发表于: 2011-08-02
Re:回 1楼(dbzhang800) 的帖子
引用第2楼yenson于2011-08-02 09:57发表的 回 1楼(dbzhang800) 的帖子 :
谢谢你的回复。请问详细原因是什么呢?是不是输出格式的问题呢?再请教一下,您的这个表示方法‘\x80’是什么意思啊?如果直接是‘0x80’的话,就输出这个东西:"30783830",请问是怎么回事呢?不好意思,请指点一下!

这个就需要你去找本C或C++的书看看了(国产的一些教材可能就够了)。
快速回复
限100 字节
 
上一个 下一个