ringa_lee
%x佔位符用於輸出無符號整數。你拿來輸出浮點型一定不對啊。
你可以參考:http://www.cplusplus.com/reference/cstdio/printf/
x:是16進位的無符號整數
你第一步已經把 0x00000001轉為float了
針對你的更新:
%X不應該是輸出資料的16進位
雖然是16進位 但是整數才是重點
你的f1是float
float f1 = 0x00000001;
浮點數在底層運算和整形不一樣,浮點數在運算時,有自己獨立浮點棧,浮點棧每一寄存器80位,printf("%x"),使用的結果是浮點數直接出站的結果(結果以64位表示),所以並不是32位
%x佔位符用於輸出無符號整數。你拿來輸出浮點型一定不對啊。
你可以參考:http://www.cplusplus.com/reference/cstdio/printf/
x:是16進位的無符號整數
你第一步已經把 0x00000001轉為float了
針對你的更新:
雖然是16進位 但是整數才是重點
你的f1是float
浮點數在底層運算和整形不一樣,浮點數在運算時,有自己獨立浮點棧,浮點棧每一寄存器80位,printf("%x"),使用的結果是浮點數直接出站的結果(結果以64位表示),所以並不是32位