float f1 = 0x00000001;
printf("%lf ", f1); // 输出 1.0000000
printf("%x", f1); // 输出 0
%X不应该是输出数据的16进制?
float f1 = 0x00000001;
printf("%lf ", f1); // 输出 1.0000000
printf("%x", f1); // 输出 0
%X不应该是输出数据的16进制?
你可以参照:http://www.cplusplus.com/reference/cstdio/printf/
x:是16进制的无符号整数
你第一步已经把 0x00000001转为float了
针对你的更新:
%X不应该是输出数据的16进制
虽然是16进制 但是整数才是重点
你的f1是float
float f1 = 0x00000001;
3 回答2k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
1 回答3.2k 阅读✓ 已解决
1 回答2.7k 阅读✓ 已解决
3 回答3.4k 阅读
1 回答1.6k 阅读✓ 已解决
%x占位符用于输出无符号整型。你拿来输出浮点型肯定不对啊。