Вопрос По Qt 4

Тема в разделе "Общие вопросы по С и С++", создана пользователем DJKondakov, 28 ноя 2011.

  1. DJKondakov

    DJKondakov Гость

    Как бы немного не по теме, но синтаксис-то вроде Сишный...
    В общем, проблема такая: имеется двухбайтовая целочисленная переменная (например, 0x006f), и массив класса QByteArray. Задача - поместить переменную в массив с сохранением всех ее двух байт (т. е. массив должен выглядеть примерно так: 00 6f).
    Делаю так:
    Код (C++):
    qint16 x = 0x006f;
    QByteArray buf;
    buf.append(x);
    После выполнения кода в массив попадает только значащий байт переменной (т. е. 6f). Всю голову уже сломал.
     
  2. rrrFer

    rrrFer Well-Known Member
    Команда форума C\C++ Team

    Регистрация:
    6 сен 2011
    Сообщения:
    1.324
    Симпатии:
    36
    а почему сломал?
    0x006f это и есть 0x6f, именно это значение имеет переменная X в вашем коде
    записывай в массив по одному байту, заходишь на официальный сайт, открываешь документацию и видишь пример:
    Код (Text):
    QByteArray ba;
    ba.resize(5);
    ba[0] = 0x3c;
    ba[1] = 0xb8;
    ba[2] = 0x64;
    ba[3] = 0x18;
    ba[4] = 0xca;
    вот примерно так и делай, тока первый байт 0x00
     
  3. DJKondakov

    DJKondakov Гость

    Ну это-то как раз и понятно. Я так и делал, только вот переменная может вдруг и двухбайтовой стать (например, 0x6f6f). Проверять размер переменной, и если он не 2 байта, запихивать 0x00? Но sizeof(x); в любом случае вернет 2, т. е. размер типа qint16.
     
Загрузка...
Похожие Темы - Вопрос По
  1. ApplePen
    Ответов:
    0
    Просмотров:
    57
  2. gURaBA_N
    Ответов:
    3
    Просмотров:
    91
  3. kartaman
    Ответов:
    0
    Просмотров:
    127
  4. Peter
    Ответов:
    4
    Просмотров:
    519
  5. di0d_
    Ответов:
    1
    Просмотров:
    434

Поделиться этой страницей