问题描述
问题解答
回答1:%x占位符用于输出无符号整型。你拿来输出浮点型肯定不对啊。
回答2:你可以参照:http://www.cplusplus.com/reference/cstdio/printf/
x:是16进制的无符号整数
你第一步已经把 0x00000001转为float了
针对你的更新:
%X不应该是输出数据的16进制
虽然是16进制 但是整数才是重点
你的f1是float
float f1 = 0x00000001;
回答3:浮点数在底层运算和整形不一样,浮点数在运算时,有自己独立浮点栈,浮点栈每一寄存器80位,printf('%x'),使用的结果是浮点数直接出站的结果(结果用64位表示),所以并不是32位