#include <stdio.h>
int main()
{
printf(
" %f, %u, %x,\n", 1.0f, 1.0f, 1.0f);
return 0;
}
输出:1.000000,1072693248,0,
代码:
#include <stdio.h>
int main()
{
printf(
" %x, %f, %u,\n", 1.0f, 1.0f, 1.0f);
return 0;
}
输出:3ff00000,0.000000,0
代码:
#include <stdio.h>
int main()
{
printf(
" %x, %u, %f,\n", 1.0f, 1.0f, 1.0f);
return 0;
}
输出:3ff00000,0,1.000000
这只是%u和%x消耗的字节数问题,以及如何让值变得一致?
完美。第二个正是我需要的。谢谢。 – deworde 2011-04-13 11:47:54
为什么发生这种事情,请参阅http://stackoverflow.com/questions/2941095/convert-ieee-754-float-to-hex-with-c-printf – deworde 2011-04-13 14:07:49
'float'作为'double'传递与ABI无关。这是标准的一部分。变量函数参数总是受到默认促销的影响,所以不可能将'float','char','short'或'_Bool'(或其任何有符号/无符号变体)作为可变参数传递。 – 2011-09-02 15:02:37