LINUX.ORG.RU

signed char? очень давно с Qt дела не имел правда

dave ★★★★★
()
Последнее исправление: dave (всего исправлений: 1)

литерал 0xA5 в выражениях преобразуется к целому (165), а символ с таким кодом преобразуется с учётом знака, что даёт -91.

Elyas ★★★★★
()

Добро пожаловать в прекрасный мир implicit cast.

RazrFalcon ★★★★★
()
Ответ на: комментарий от dib2
QByteArray ans = QByteArray("\xA5\xA8\xA9\xAB\xAC\xAD",6);
 long Version = ((ans.at(2) & 0xFF) | ((ans.at(3) & 0xFF) << 8) | ((ans.at(4) & 0xFF) << 16) | ((ans.at(5) & 0xFF) << 24));
        ui->log->append("Версия ПО: " + QString::number(Version));

А как тут правильно сделать, выводит с минусом результат.

user2132
() автор топика
Ответ на: комментарий от user2132

Напиши свою функцию, которая вернет или unsigned int или unsigned char после static_cast. Тогда сработают твои константы. Хотя помнится что-то такое, что вроде бы и для signed char могут быть свои литералы

dave ★★★★★
()
Ответ на: комментарий от user2132

Хотя у тебя же тут сдвиг! Тогда переходи на unsigned

dave ★★★★★
()

А все потому-что предупреждения компилятора надо читать и исправлять, а не игнорировать.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.