Название: Не могу разобраться с QByteArray, прошу помощи Отправлено: SpaceRabbit от Сентябрь 13, 2012, 10:35 Здравствуйте, у меня два вопроса:
1) как правильно строковые данные поместить в QByteArray? есть поле ввода, ввожу туда символы "0x4A 0x4B 0x4C" Код: // из строки помещаю в массив 2) и второй вопрос: в массиве QByteArray записано число 5000 в hex QByteArray Number; Number[0] = 0x13; Nubmber[1] = 0x88; как из этих двух байтов перевести в целое число типа int, т.е получить 5000 Прошу, помогите пожалуйста новичку. Название: Re: Не могу разобраться с QByteArray, прошу помощи Отправлено: GreatSnake от Сентябрь 13, 2012, 10:39 Для таких вещей нужно использовать QDataStream и понимать, что "0x4A 0x4B 0x4C" это строка, а не массив из этих символов.
Название: Re: Не могу разобраться с QByteArray, прошу помощи Отправлено: Serr500 от Сентябрь 13, 2012, 10:41 1) как правильно строковые данные поместить в QByteArray? QByteArray & QByteArray::append ( const QString & str )QByteArray & QByteArray::append ( const char * str ) QByteArray & QByteArray::append ( const char * str, int len ) 2) и второй вопрос: в массиве QByteArray записано число 5000 в hex Number[0]*16+Number[1]QByteArray Number; Number[0] = 0x13; Nubmber[1] = 0x88; как из этих двух байтов перевести в целое число типа int, т.е получить 5000 Название: Re: Не могу разобраться с QByteArray, прошу помощи Отправлено: SpaceRabbit от Сентябрь 13, 2012, 11:40 Цитировать Для таких вещей нужно использовать QDataStream и понимать, что "0x4A 0x4B 0x4C" это строка, а не массив из этих символов. можно пример, как считать с QLineEdit, у меня ничего не получаетсяКод:
Код: Number[0]*16+Number[1] Название: Re: Не могу разобраться с QByteArray, прошу помощи Отправлено: Serr500 от Сентябрь 13, 2012, 12:35 Код: Number[0]*16+Number[1] Упс... Что-то я наврал... И про приведение типов забыл... Код: ((unsigned char)N[0]) * 0x100 + (unsigned char)N[1] Название: Re: Не могу разобраться с QByteArray, прошу помощи Отправлено: Igors от Сентябрь 13, 2012, 13:57 Начнем со второй задачи
2) и второй вопрос: в массиве QByteArray записано число 5000 в hex У Вас машинное представление "little endian", это означает что младший байт слева, первый. Поэтому правильноQByteArray Number; Number[0] = 0x13; Nubmber[1] = 0x88; как из этих двух байтов перевести в целое число типа int, т.е получить 5000 Код Обратите внимание что заполнив 2 байта Вы имеете short. Если нужен int, то Код Теперь вернемся к первому вопросу. Надо полагать что все введенные числа уместятся в одно число, иначе задача некорректна. Будем считать что это число int, 4 байта. Мне неизвестна ф-ция которая понимает 0x, поэтому я бы сделал так Код Писал прямо здесь, возможны ошибки Название: Re: Не могу разобраться с QByteArray, прошу помощи Отправлено: andrew.k от Сентябрь 13, 2012, 17:36 Если "0х" программой никак не используется, если кроме 0х других вариантов нет, то зачем заставлять пользователя вводить это?
Нужно написать: "Введите данные в шестнадцатиричном виде". И все. А дальше Код
|