QByteArray непонятная 3 в начале массива

193
03 июля 2018, 14:40

Мне нужно передавать данные в HEX на удаленное устройство. Если я пишу:

QByteArray tmp = QByteArray::number(0);
qDebug() << tmp.toHex(); //Результат 30
QByteArray tmp2 = QByteArray::fromHex("5");
qDebug() << tmp2.toHex();   //Результат 05 - Как нужно.
//Так же пробовал пример из Qt
int n = 63;
QByteArray::number(n);              // returns "63"
QByteArray::number(n, 16);          // returns "3f"
QByteArray::number(n, 16).toUpper();  // returns "3F"

Я просто что-то не понимаю в его работе. Задача простая, посылать по TCP HEX значения. Откуда берется в начале 3 и как от неё избавиться.

Answer 1
QByteArray::number(int n, int base = 10)

Возвращает массив байтов, содержащий !СТРОКУ!, эквивалентную номеру n базовой базе (по умолчанию 10). Базой может быть любое значение от 2 до 36.

Соответственно QByteArray tmp = QByteArray::number(0); вернет строку, содержащую ноль, символ "0" имеет код 48(0x30)

Вот это QByteArray tmp2 = QByteArray::fromHex("5"); в свою очередь вернет массив, содержащий декодированное значение из hex-строки. Поскольку у вас указано "5", то оно декодируется как один байт 5(0х05)

QByteArray::number(63); - вернет СТРОКУ "63", или два байта 0х36 0х33 QByteArray::number(63, 16); - вернет СТРОКУ "3f", или два байта 0х33 0х66

Если вам надо просто добавлять байты в сетевую посылку, то используйте обычный append(unsigned char)

READ ALSO
Как создать нужный инстанс класса по имени без switch?

Как создать нужный инстанс класса по имени без switch?

Пользователь вводит имя фигуры и нужно создать класс этой фигурыТо есть какой класс создавать определяется в runtime

186
Звездочки вместо символов в консоли

Звездочки вместо символов в консоли

Проблема заключается в том , что я пишу функцию для ввода пароля и логина , и мне надо скрыть символы пароля , те

183
Что больше, 10^10 или long long?

Что больше, 10^10 или long long?

Возможно ли число 1010 засунуть в long long или не влезет?

157
Функция sort и алгоритмы сортировки [закрыт]

Функция sort и алгоритмы сортировки [закрыт]

Скорее всего, все наслышаны про различные алгоритмы сортировокТакже, в C++ есть встроенная библиотека <algorithm>, в которой есть функция sort

200