Хорошо, у меня есть вопрос из двух частей о преобразовании элемента в QByteArray (должен быть char, верно?) в целое число без знака.
Вот мой код:
QByteArray data_read_buffer;
unsigned int data_recieved_size = 0;
/* the code below is an external function that populates the QbyteArray. shouldn't be important putting only to show that I assign a value to the byteArray./*
readFromComPortSafe(data_read_buffer);
data_recieved_size = static_cast<unsigned int>((data_read_buffer.at(2)));
В порядке. Таким образом, результат, который я возвращаю в data_recieved_size, неверен «каждый раз». Я захожу в отладчик, и когда я проверяю значение data_read_buffer, я получаю это:
\000\003\203\00\205.... (и т. д. мы с некоторым символом с умляутом)
Когда я проверяю значение data_recieved_size, я получаю 4294967171.
Итак, мой первый вопрос заключается в следующем.
Я делаю что-то не так с преобразованием из char в unsigned int?
Мой второй вопрос заключается в следующем:
Что представляет \203 в qByteArray? Наверное, я не понимаю, на что смотрю. Насколько я понимаю, тип char является символом Юникода???? Я ожидал, что второй элемент в QByteArray будет 0x83 или 131. Как это перевести на \203?
Если бы кто-нибудь мог дать некоторое представление об этом, я был бы признателен.
Спасибо