Re[2]: Как преобразовать BYTE в FLOAT?
От: Артур Россия  
Дата: 19.03.03 11:35
Оценка: 19 (2)
Здравствуйте, Vamp, Вы писали:

V>Здравствуйте, Kven, Вы писали:


K>>Есть некий файл, он заливается в битовый буффер, в файле хранятся данные разных типов

K>>DWORD int CHAR и float. Нужно данные float вытащить из битового буффера отредактировать и
K>>запихнуть обратно.

V>Очень просто.


V>

V>
V>byte b[BUFFER_SIZE];

V>//b is initialized 
V>//....

V>float *pfNum;
V>pfNum=(float *)(b+nOffset); //nOffset - offset in byte array of our number
V>*pfNum=*pfNum+2003;
V>


V>


Так будут проблемы с выравниванием. То есть, если в буфере хранится byte а потом float (nOffset нечётный), то мы получим указатель на float по нечётному адресу.
Так что извлекать нужно так:

float a;
memcpy(&a,b+nOffset,sizeof(float));

обратно записывать — аналогично.
... << RSDN@Home 1.0 beta 6a >>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.