QByteArray преобразование из текста - PullRequest
0 голосов
/ 01 июля 2019

У меня есть textedit, где я ввожу шестнадцатеричное число, а затем этот текст для преобразования в QByteArray.

Это мой код:

QByteArray parsedValue = QByteArray::fromHex(expectedPacketStr.toUtf8());
qDebug() << parsedValue;

, когда я устанавливаю его в 001102 , затем консольный журнал сообщает "\x00\x11\x02", что я и ожидал.

Но если я установил значение 001122 , консоль регистрирует отчеты "\x00\x11\"", чтопропустил байт x22.

Я действительно не могу понять, что происходит.У кого-нибудь есть подсказка, почему это так ???

1 Ответ

1 голос
/ 01 июля 2019

0x22 - это символ "в ascii, поэтому его интерпретирует только qDebug (), и внутри QByteArray ничего не пропущено.

Чтобы убедить вас, вы всегда можете отобразить массив один за другим:

for (auto b : parsedValue)
    qDebug() << (int)b;
...