#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