Вниз
Скачать: CL | DM;

C++   Найти похожие ветки 

← →
Tonich ©   (2006-03-31 18:21) [0]

Драсте народ может кто поможет хоть это конечно не сишный форум , но это по-моему самый живой форум по программированию. Так вот даю запрос устройству через COM на получения некоторых данных
получаем ответ
Length 18: 01 45 06 00 00 0C 04 89 96 01 45 04 2C 01 00 00 AD C5
выделенным являются именно те данные что я и запрашивал, ну то есть это число типа float 4 байта. Так вот в программе ко мне это поступает как строка как записать это дело просто в переменную float F ?  Сразу говорю в c++ чайник.  ))


← →
Alkid ©   (2006-03-31 18:25) [1]

А ты точно знаешь, в каком месте полученной строки байт располаагются
эти 4 байта, которые тебе нужны? Если да, то ответ достаточно прост, если нет,
то сообщай доп.данные.

А так это будет выглядеть типа так:

char * buffer; // Здесь лежит вся строка байт.
float f;

float f = *((float*)((int)buffer + 12)); // Данная строка кладёт в f 4 байта, расположенные по смещению 12 от начала строки.


← →
Alkid ©   (2006-03-31 18:27) [2]

Кстати, на RSDN.ru форум по программированию живее всех живых.


← →
Игорь Шевченко ©   (2006-03-31 18:27) [3]


> *((float*)((int)buffer + 12));


песня :)


← →
Alkid ©   (2006-03-31 18:29) [4]


> песня :)

можно ещё так:
memcpy(&f,buffer + 12,sizeof(float))


← →
Суслик ©   (2006-03-31 18:31) [5]


> [3] Игорь Шевченко ©   (31.03.06 18:27)
> > *((float*)((int)buffer + 12));
> песня :)


вроде и в дельфи с этим не проблема.
примерно также можно написать.
А в чем песня?


← →
Alkid ©   (2006-03-31 18:32) [6]


> вроде и в дельфи с этим не проблема.
> примерно также можно написать.
> А в чем песня?

Да можно и на Дельфи. Но товарищу надо было на плюсах.


← →
Суслик ©   (2006-03-31 18:33) [7]

Не, вопрос был про "песня :)"


← →
Tonich ©   (2006-03-31 18:34) [8]


> Суслик ©   (31.03.06 18:31) [5]

в том то вся прелесть что именноне на дельфе а на с++ не по моей воли на с++ надо ))


← →
Игорь Шевченко ©   (2006-03-31 18:35) [9]

Суслик ©   (31.03.06 18:31) [5]


> А в чем песня?


Звездочки, скобочки...

Alkid ©   (31.03.06 18:29) [4]


> можно ещё так:


А можно и так:

struct a {
 unsigned char unknown[12];
 float f;
};

((a*)buffer)->f


← →
Суслик ©   (2006-03-31 18:36) [10]


> Звездочки, скобочки...

а-а-а
понял.


← →
Kirr   (2006-03-31 18:59) [11]

Ничего вы не понимаете! Надо так:

template <unsigned int n>
class M
{
private:
unsigned char dummy[n];
float data;
public:
  operator float() {return data;}
}

char * buffer; // Здесь лежит вся строка байт.
float f = (M<12>)buffer;


← →
Игорь Шевченко ©   (2006-03-31 22:32) [12]


> float f = (M<12>)buffer;


write-only language



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.054 c
15-1143613761
Nechk@ssoff
2006-03-29 10:29
2006.04.23
Ахтунг!


4-1138802484
DDDiM
2006-02-01 17:01
2006.04.23
шпион за com портом


3-1141450048
-САша-
2006-03-04 08:27
2006.04.23
Delphi with fbclient.dll


15-1143698298
Pazitron_Brain
2006-03-30 09:58
2006.04.23
Посоветуйте программу для создания фотогаллерей


1-1142429031
DelphiLexx
2006-03-15 16:23
2006.04.23
Запрет ввода символа для Memo




   Наверх