單片機(jī)一般浮點(diǎn)數(shù)均采用士MxC的形式來表示,其中M稱為尾數(shù)。它一般取為小數(shù)0≤M
浮點(diǎn)數(shù)也有各種各樣表示有符號(hào)數(shù)的方法,其中數(shù)的符號(hào)常和尾數(shù)放在一起,即把士M作為一個(gè)有符號(hào)的小數(shù),它可以采用原碼、補(bǔ)碼等各種表示方法,而階碼可采用各種不同的長度,并且數(shù)的符號(hào)也可以放于各種不同的地方。所以浮點(diǎn)數(shù)有很多的表示方法。
四字節(jié)浮點(diǎn)數(shù)表示法是微機(jī)中常用的一種表示方式。浮點(diǎn)數(shù)總長度是32位,其中階碼8位,尾數(shù)是24位。階碼和尾數(shù)均為2的補(bǔ)碼形式。階碼的最大值位+127,最小值-128,這樣四字節(jié)浮點(diǎn)數(shù)能表示的最大值近似于l×2(的127次方)=l70×l0(的38次方),能表示的最小值近似為0.5×2(的-128次方)=1.47×10(的-39次方),這時(shí)該范圍內(nèi)的數(shù)具有同樣的精度。
四字節(jié)的浮點(diǎn)數(shù)精度較高,接近7位十進(jìn)制數(shù),但是由于字節(jié)較多,運(yùn)算速度較慢,往往不能滿足實(shí)時(shí)控制和測量的需要,并且實(shí)際使用時(shí)所需的精度一般不要求這么高,三字節(jié)浮點(diǎn)數(shù)就滿足了這個(gè)要求,精度較低,但運(yùn)算速度較高。浮點(diǎn)數(shù)總長為24位,其中階碼為7位,數(shù)符在階碼所在字節(jié)的最高位,尾數(shù)為16位,這種表示法運(yùn)算速度較快需要的存儲(chǔ)容量較小,并且數(shù)的范圍和精度能滿足大多數(shù)應(yīng)用場合的需要。下面的程序基本都采用這種表示方法。
規(guī)格化浮點(diǎn)數(shù),在實(shí)際應(yīng)用中,需要有一個(gè)程序來完成把一個(gè)非規(guī)格化數(shù)變規(guī)格化數(shù)的操作。在進(jìn)行規(guī)格化操作時(shí),對(duì)原碼表示的數(shù),一般是先判斷尾數(shù)的最高位數(shù)值位是0還是1。如果是0則把尾數(shù)左移l位,階碼減1再循環(huán)判斷,如果是1,則結(jié)束操作。由于零無法規(guī)格化,一旦尾數(shù)為0,則把階碼置為最小值。如果在規(guī)格化中,階碼減1變成最小值時(shí),不能再繼續(xù)進(jìn)行規(guī)格化操作,否則發(fā)生階碼下溢出,一般稱之為左規(guī)格化操作。