Russian Qt Forum

Qt => Вопросы новичков => Тема начата: DeVOLT от Август 08, 2012, 12:40



Название: INT в hex и положить в QChar
Отправлено: DeVOLT от Август 08, 2012, 12:40
Здравствуйте!
Столкнулся с проблемой.
Как преобразовать INT в 16-ричную сс и положить это значение в QChar?
Собственно как преобразовать то понятно, а вот как его туда положить.
Сейчас делаю так:
Код
C++ (Qt)
switch(a){
   case 0:
       comand[13] = 0x00;
   case 1:
       comand[13] = 0x01;
   case 2:
       comand[13] = 0x02;
   case 3:
       comand[13] = 0x03;
   case 4:
       comand[13] = 0x04;
   case 5:
       comand[13] = 0x05;
   case 6:
       comand[13] = 0x06;
   case 7:
       comand[13] = 0x07;
   case 8:
       comand[13] = 0x08;
   case 9:
       comand[13] = 0x09;
   case A:
       comand[13] = 0x0A;
   case B:
       comand[13] = 0x0B;
   case C:
       comand[13] = 0x0C;
   case D:
       comand[13] = 0x0D;
   case E:
       comand[13] = 0x0E;
   case F:
       comand[13] = 0x0F;
}//swich
 

понятно, что весь промежуток 0-255 так не сделать.
Сейчас написал функцию, которая переводит INT в hex и кладет в QString. Но опять же, как значение QString "0x3F" положить в QChar?

Прошу помощи.


Название: Re: INT в hex и положить в QChar
Отправлено: Kurles от Август 08, 2012, 12:47
Пипец :) Ничего преобразовывать не надо тебе.
ЗЫЖ Ну этот хоть вроде не собирается алгоритм шифрования des реализовывать :)


Название: Re: INT в hex и положить в QChar
Отправлено: DeVOLT от Август 08, 2012, 12:52
Ну а как тогда?


Название: Re: INT в hex и положить в QChar
Отправлено: kambala от Август 08, 2012, 13:16
command[13] = a;


Название: Re: INT в hex и положить в QChar
Отправлено: Serr500 от Август 08, 2012, 13:20
1) А так не проще?
Код:
if (0 <= a && a <= 0xF)
    command[13] = (char)a;

2) Что такое QByte? В Qt такого нет. Или имеется в виду QChar?

3) Что значит "в 16-ричную сс"? Не очень понятно. Привести к виду 0xXX (две цифры) что-ли? Ну так int привести к такому виду невозможно, потому что его диапазон намного шире. И для каких целей "положить это значение в QByte"?


Название: Re: INT в hex и положить в QChar
Отправлено: mutineer от Август 08, 2012, 13:28
1) А так не проще?
Код:
if (0 <= a && a <= 0xF)
    command[13] = (char)a;

Наверно лучше будет 0xFF


Название: Re: INT в hex и положить в QChar
Отправлено: DeVOLT от Август 08, 2012, 13:38
Да, действительно, положить в QChar.

Числа заведомо в промежутке 0..255.

т.е. надо получить из 122, например, 0x7A и это значение кинуть в QChar. Далее у меня из QChar строится QCharArray и он по UDP передается на удаленное устройство.
Реализую протокол один.


Название: Re: INT в hex и положить в QChar
Отправлено: DeVOLT от Август 08, 2012, 13:55
Блин, я очень жестко ступил.
Всем спасибо за подсказки.
Вопрос решен.


Название: Re: INT в hex и положить в QChar
Отправлено: Kurles от Август 08, 2012, 13:55
Да, действительно, положить в QChar.

Числа заведомо в промежутке 0..255.

т.е. надо получить из 122, например, 0x7A и это значение кинуть в QChar. Далее у меня из QChar строится QCharArray и он по UDP передается на удаленное устройство.
Реализую протокол один.
Тебе уже ответили. Десятеричные, шестнадцатеричные, восьмеричные и прочие -ичные системы счисления это чисто человеческие заморочки, компу они до лампочки.
command[13] = a;


Название: Re: INT в hex и положить в QChar
Отправлено: Serr500 от Август 08, 2012, 13:56
Вопрос решен.

Код:
QChar::QChar (int code)
?


Название: Re: INT в hex и положить в QChar
Отправлено: DeVOLT от Август 08, 2012, 14:40
Вот ответ на вопрос:

Тебе уже ответили. Десятеричные, шестнадцатеричные, восьмеричные и прочие -ичные системы счисления это чисто человеческие заморочки, компу они до лампочки.
command[13] = a;