1. 程式人生 > >實數與單精度浮點數的轉換

實數與單精度浮點數的轉換

單精度浮點數的表示方法
三個主要成分是:
Sign(1bit):表示浮點數是正數還是負數。0表示正數,1表示負數
Exponent(8bits):指數部分。類似於科學技術法中的M*10^N中的N,只不過這裡是以2為底數而不是10。需要注意的是,這部分中是以2^7-1即127,也即01111111代表2^0,轉換時需要根據127作偏移調整。
Mantissa(23bits):基數部分。浮點數具體數值的實際表示。
首先我們來看看如何表示小數5.625。
第一步:把整數部分表示出來,也就是101
第二步:小數部分拆成是2^-1一直到2^-N的和,0.625=0.5+0.125,即2^-1+2^-3,也即.10100
第三步:將二進位制串101.101規範化,也就是保證小數點前只有一位,即1.01101*2^2
第四步:將規範化的數字填入規定的格式中。指數部分需要以127作為偏移量,即2+127=129,所以指數部分1000 0001
小數部分即.01101。所以最後的浮點數為 0 10000001 01101000000000000000000