我想将浮点值转换为十六进制数组。这是我的代码:
int main(void)
{
int8_t float_data[4] = { 0x08, 0x01, 0x01, 0x01 };
float f_value = 12.59;
*(float_data) = f_value;
int i = 0;
while (i != 4)
printf("%x", float_data[i++]);
}
我想将浮点值插入到float_data中作为4个字节的十六进制值。我怎么能这样做?
答案 0 :(得分:2)
也许你想要这个:
int main(void)
{
float f_value = 12.59;
uint8_t *float_data = (uint8_t*)&f_value;
int i = 0;
while (i != 4)
printf("%02x ", float_data[i++]);
printf("\n");
}
答案 1 :(得分:1)
你想要的可能是一个坏主意(阅读评论)。
无论如何,试试这个
memmove(float_data, &f_value, sizeof (float));