很抱歉问这个,但我搜索了这个小东西,并在下面的链接中找到了相关内容,但无法得到任何想法
如何存储浮点值,假设0.00895为无符号字符,后来用于存储在内存缓冲区中。
后来我需要读回数组并希望从内存中读回来。
由于
答案 0 :(得分:4)
您不需要memcpy
...如果您将浮点数组复制到内存中其他位置的缓冲区中,那将非常有用。您真正需要的是使用不同的指针类型来查看字符数组。
const size_t BUFSIZE = 4096;
char buffer[BUFSIZE];
float *f_buf = (float*)buffer;
如果您只想将一个浮点数粘贴到缓冲区的开头,则以下两行中的任何一行都可以:
*f_buf = 0.00895;
f_buf[0] = 0.00895;
所有它真正做的就是让你将缓冲区视为浮点数组。
int i;
/* Put a bunch of floats into the buffer */
for( i = 0; i < 10; i++ ) {
f_buf[i] = i / 2;
}
/* Display contents of buffer in hex */
for( i = 0; i < 10 * sizeof(float); i++ ) {
printf( "%02x", (int)buffer[i] );
}
printf( "\n" );
/* Sanity-test the buffer contents */
for( i = 0; i < 10; i++ ) {
printf( "%d: %f\n", i, f_buf[i] );
}
答案 1 :(得分:2)
你可以将float的内存复制到char缓冲区中。
float a;
char buffer[sizeof(float)];
memcpy(buffer,&a,sizeof(float));