發表於 2019-04-18 15:38:39
單片機一般浮點數均採用士MxC的形式來表示,其中M稱為尾數。它一般取為小數0≤M
浮點數也有各種各樣表示有符號數的方法,其中數的符號常和尾數放在一起,即把士M作為一個有符號的小數,它可以採用原碼、補碼等各種表示方法,而階碼可採用各種不同的長度,並且數的符號也可以放於各種不同的地方。所以浮點數有很多的表示方法。
四字節浮點數表示法是微機中常用的一種表示方式。浮點數總長度是32位,其中階碼8位,尾數是24位。階碼和尾數均為2的補碼形式。階碼的最大值位+127,最小值-128,這樣四字節浮點數能表示的最大值近似於l×2(的127次方)=l70×l0(的38次方),能表示的最小值近似為0.5×2(的-128次方)=1.47×10(的-39次方),這時該範圍內的數具有同樣的精度。
四字節的浮點數精度較高,接近7位十進位數,但是由於字節較多,運算速度較慢,往往不能滿足實時控制和測量的需要,並且實際使用時所需的精度一般不要求這麼高,三字節浮點數就滿足了這個要求,精度較低,但運算速度較高。浮點數總長為24位,其中階碼為7位,數符在階碼所在字節的最高位,尾數為16位,這種表示法運算速度較快需要的存儲容量較小,並且數的範圍和精度能滿足大多數應用場合的需要。下面的程序基本都採用這種表示方法。
規格化浮點數,在實際應用中,需要有一個程序來完成把一個非規格化數變規格化數的操作。在進行規格化操作時,對原碼表示的數,一般是先判斷尾數的最高位數值位是0還是1。如果是0則把尾數左移l位,階碼減1再循環判斷,如果是1,則結束操作。由於零無法規格化,一旦尾數為0,則把階碼置為最小值。如果在規格化中,階碼減1變成最小值時,不能再繼續進行規格化操作,否則發生階碼下溢出,一般稱之為左規格化操作。
打開APP閱讀更多精彩內容
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容圖片侵權或者其他問題,請聯繫本站作侵刪。 侵權投訴