如何将float转换为十六进制数组

时间:2017-05-05 10:18:41

标签: c

我想将浮点值转换为十六进制数组。这是我的代码:

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个字节的十六进制值。我怎么能这样做?

2 个答案:

答案 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));