Russian Qt Forum
Ноябрь 23, 2024, 03:44 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: Бинарная строка  (Прочитано 8401 раз)
Bar90
Гость
« : Август 31, 2012, 12:52 »

Здравствуйте. Мне нужно из Hex составитьстроку то есть из FF FF FF мне бы хотелось что бы и в строке было тоже самое.
Что получается у меня :
Код:
  QString s = QString(QByteArray::fromHex("FFFFFFFFFFFFFFFF"));
    qDebug() << "String = " << s;
    qDebug() << "HEX =" << s.toLocal8Bit().toHex();
вывод в дебаге
String =  "НепонимающийНепонимающий??"
HEX = "3f3f3f3f3f3f3f3f"
а мне нужно что бы в дебаге вывелось
HEX = "FFFFFFFFFFFFFFFF"

Почему в дебаге выводятся еще какието тройки ?
Записан
mutineer
Гость
« Ответ #1 : Август 31, 2012, 12:55 »

Код:
QString s = "FFFFFFFF";
qDebug() << s;

чем не подходит?
Записан
Bar90
Гость
« Ответ #2 : Август 31, 2012, 13:09 »

Код:
QString s = "FFFFFFFF";
qDebug() << s;

чем не подходит?
Тем что хексовое значение строки будет не FFFFFFFF
Записан
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #3 : Август 31, 2012, 13:16 »

Код:
   
    QByteArray byteArr = "ff04d3";
    QString str = QString(byteArr);
    QMessageBox::information(0, "", str);

вывелось "ff04d3"
Записан

Bar90
Гость
« Ответ #4 : Август 31, 2012, 13:26 »

А у меня HEX = "666630346433"
Записан
Bar90
Гость
« Ответ #5 : Август 31, 2012, 13:32 »

Мне нужно что бы внутренее представление строки в памяти было таким каким я укажу в hex виде.
Записан
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #6 : Август 31, 2012, 13:41 »

Код:
    
    QByteArray byteArr = "ff04d3";
    QString s = QString(byteArr);
    qDebug() << s.toLocal8Bit();
    qDebug() << s.toAscii();

выводит "ff04d3"
Записан

mutineer
Гость
« Ответ #7 : Август 31, 2012, 13:43 »

Код:
QString s = QByteArray::fromHex("517420697320677265617421FFFF");
qDebug() << s;
qDebug() << s.toAscii().toHex();
Записан
Bar90
Гость
« Ответ #8 : Август 31, 2012, 13:52 »

Код:
QString s = QByteArray::fromHex("517420697320677265617421FFFF");
qDebug() << s;
qDebug() << s.toAscii().toHex();
Код:
 QString s = QByteArray::fromHex("FFFFFFFFFFFFFFFF");
    qDebug() << s;
    qDebug() << s.toAscii().toHex();
выводит
"НепонимающийНепонимающий??"
"efbfbdefbfbdefbfbdefbfbdefbfbdefbfbdefbfbdefbfbd"
Записан
mutineer
Гость
« Ответ #9 : Август 31, 2012, 13:57 »

а с приведенным мной значением что выводит?
Записан
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #10 : Август 31, 2012, 14:05 »

а с приведенным мной значением что выводит?
скопировал я этот код:
Код:
    QString s = QByteArray::fromHex("517420697320677265617421FFFF");
    qDebug() << s;
    qDebug() << s.toAscii().toHex();

вывелось у меня:
"Qt is great!yy"
"517420697320677265617421ffff"
Записан

Bar90
Гость
« Ответ #11 : Август 31, 2012, 14:06 »

а с приведенным мной значением что выводит?
скопировал я этот код:
Код:
    QString s = QByteArray::fromHex("517420697320677265617421FFFF");
    qDebug() << s;
    qDebug() << s.toAscii().toHex();

вывелось у меня:
"Qt is great!yy"
"517420697320677265617421ffff"
а с приведенным мной значением что выводит?
С приведенным вами 517420697320677265617421fbfbfbfb
Записан
mutineer
Гость
« Ответ #12 : Август 31, 2012, 14:09 »

а текст вывелся или вопросы?
Что за ось у тебя?
Записан
andrew.k
Гость
« Ответ #13 : Август 31, 2012, 14:12 »

Мне нужно что бы внутренее представление строки в памяти было таким каким я укажу в hex виде.
Для этих целей тебе подходит:
Цитировать
QByteArray QByteArray::fromHex ( const QByteArray & hexEncoded ) [static]

Returns a decoded copy of the hex encoded array hexEncoded. Input is not checked for validity; invalid characters in the input are skipped, enabling the decoding process to continue with subsequent characters.

For example:
Код
C++ (Qt)
QByteArray text = QByteArray::fromHex("517420697320677265617421");
text.data();   // returns "Qt is great!"

Но тебе что-то не нравится. Что ты хочешь получить, не ясно.
« Последнее редактирование: Август 31, 2012, 14:17 от andrew.k » Записан
Bar90
Гость
« Ответ #14 : Август 31, 2012, 15:05 »

  QString s = "яяяяяяяяяяяяяяяя";
    qDebug() << "HEX =" << s.toLocal8Bit().toHex();
выводит
HEX = "ffffffffffffffffffffffffffffffff"
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.074 секунд. Запросов: 23.