以2為底的一個二進制浮點數的格式如下?
按 IEEE754 標準,float 的格式是 binary32,double 的格式是 binary64,浮點數中的有效數位(significant)部分其實可以理解為是一個定點數,只不過有指數(exponent)部分做了小數點偏移(類似科學計數法,只不過是二進制的,浮點數因此得名)。
我沒有具體寫過浮點到定點的轉換,不過我認為這不會太復雜,思路:浮點數在定點數表達范圍內時,只需要用位運算把有效數位部分取出來,再根據指數部分做位移就好。當然,隱藏位,符號位,指數偏移等細節需要注意。好在浮點定點都是二進制所以不需要轉換。
Double-precision floating-point format