利用强制转换类型实现。
浮点数转十六进制
实现:
1
2float f = 123.45f;
unsigned char *hex = (unsigned char *)&f;打印输出:
1
2
3for(int i = 0; i < 4; i++)
printf("0x%02X ", hex[i]);
printf("\n");
十六进制转浮点数
实现:
1
2unsigned char hex[] = { 0x66, 0xE6, 0xF6, 0x42 };
float f = *(float *)hex;打印输出:
1
2printf("%g\n", f);
// %g参数按浮点精度四舍五入去除多余的0.