很抱歉问这个问题,但我已经搜索了这个小东西,并在下面的链接中找到了相关的东西,但无法得到任何想法
如何存储一个浮点值假设 0.00895 到一个无符号字符,该字符稍后用于存储在内存缓冲区中。
后来我需要读回数组并想从内存中读回它。
谢谢
很抱歉问这个问题,但我已经搜索了这个小东西,并在下面的链接中找到了相关的东西,但无法得到任何想法
如何存储一个浮点值假设 0.00895 到一个无符号字符,该字符稍后用于存储在内存缓冲区中。
后来我需要读回数组并想从内存中读回它。
谢谢
你不需要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] );
}
您可以将浮点数的内存复制到字符缓冲区中。
float a;
char buffer[sizeof(float)];
memcpy(buffer,&a,sizeof(float));