PIC單片機(jī)浮點(diǎn)數(shù)與十進(jìn)制數(shù)之間的轉(zhuǎn)換_第1頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、pic單片機(jī)浮點(diǎn)數(shù)與十進(jìn)制數(shù)之間的轉(zhuǎn)換在我們設(shè)計的儀表中采納系列,遇到了浮點(diǎn)數(shù)的運(yùn)算問題,查閱其有關(guān)資料發(fā)覺,其浮點(diǎn)數(shù)的格式及其與十進(jìn)制數(shù)之間的轉(zhuǎn)換,與我們常用的mcs-所提供的三字節(jié)、四字節(jié)浮點(diǎn)數(shù)徹低不同,本文將解釋其浮點(diǎn)數(shù)的格式及其與十進(jìn)制數(shù)之間的轉(zhuǎn)換和程序設(shè)計步驟。1 浮點(diǎn)數(shù)的格式公司單片機(jī)所采納的浮點(diǎn)數(shù)格式是ieee-754標(biāo)準(zhǔn)的變異型。32位浮點(diǎn)數(shù)格式為:其中:×表示一位二進(jìn)制數(shù)0或1;eb為指數(shù)的偏差;s為浮點(diǎn)數(shù)的符號位,s=0為正數(shù),s=1為負(fù)數(shù);小數(shù)點(diǎn)“·”在符號位s的右邊;by0by1by2為尾數(shù)的小數(shù)部分。應(yīng)特殊注重:浮點(diǎn)數(shù)隱含其整數(shù)部分為1。十進(jìn)制數(shù)0

2、的浮點(diǎn)數(shù)表示為00h,00h,00h,00h。2 浮點(diǎn)數(shù)與十進(jìn)制數(shù)之間的互相轉(zhuǎn)換2.1 十進(jìn)制數(shù)轉(zhuǎn)換成浮點(diǎn)數(shù)設(shè):十進(jìn)數(shù)為a,則2z=a,z=lna/ln2,指數(shù)p=int(z);尾數(shù)部分x:x=a/2p,其整數(shù)部分隱含為1(零除外),將其小數(shù)部分按原碼格式化為二進(jìn)制數(shù),即為尾數(shù)的小數(shù)部分by0by1by2。而指數(shù)偏差eb=p+7fh(其中的7fh為指數(shù)的偏移量)。符號位s,視十進(jìn)制數(shù)的正負(fù)而確定。例如十進(jìn)制數(shù)50.265化為32位規(guī)格化浮點(diǎn)數(shù):a=50.265,則z=ln50.265/ln2,p=int(z),故p=5;x=a/2p=50.265/25=1.57078125,將0.570781

3、25化為23位二進(jìn)制小數(shù),即是by0by1by2,在最高位添上十進(jìn)制數(shù)的符號位s(因十進(jìn)制數(shù)為正數(shù),故s=0);而eb=p+7fh,所以,十進(jìn)制數(shù)50.265的32位規(guī)格化浮點(diǎn)數(shù)即為84h,49h,0fh,5ch。2.2 浮點(diǎn)數(shù)轉(zhuǎn)換為十進(jìn)制數(shù)設(shè)浮點(diǎn)數(shù)為ebs.by0by1by2。因?yàn)楦↑c(diǎn)數(shù)隱含尾數(shù)的整數(shù)為1,故尾數(shù)x的實(shí)際值為:by0by1by2;指數(shù)p=eb7fh;故:十進(jìn)制數(shù)a=(1)s×2p×x例:32位規(guī)格化浮點(diǎn)數(shù)84h,49h,0fh,5ch轉(zhuǎn)換為十進(jìn)制數(shù)。符號位s=0;指數(shù)p=84h7fh,故p=5;尾數(shù)的小數(shù)部分為49h,0fh,5ch左移一位,而尾數(shù)的整數(shù)部

4、分隱含為1,故尾數(shù)x的實(shí)際值為:1.57078123;十進(jìn)制數(shù)a=(1)0×25×1.57078123,即a=50.265。3 浮點(diǎn)數(shù)與十進(jìn)制數(shù)互相轉(zhuǎn)換的程序設(shè)計3.1 浮點(diǎn)數(shù)轉(zhuǎn)換為十進(jìn)制數(shù)的程序設(shè)計(1)檢測浮點(diǎn)數(shù)是否為零;若為零,則十進(jìn)制數(shù)整數(shù)部分和小數(shù)部分均為零。(2)保存浮點(diǎn)數(shù)的符號位,將浮點(diǎn)數(shù)隱含的1置于浮點(diǎn)數(shù)的符號位,指數(shù)偏差eb加1,小數(shù)點(diǎn)移到原浮點(diǎn)數(shù)的符號位之前。(3)推斷指數(shù)偏差大于7fh否?若小于等于7fh,則該進(jìn)制數(shù)整數(shù)部分為零,浮點(diǎn)數(shù)尾數(shù)部分右移n次(注:n=7fh指數(shù)偏差eb),即求得二進(jìn)制小數(shù)部分。若大于7fh,則將小數(shù)點(diǎn)右移n次(注:n=指數(shù)偏

5、差eb7fh),即求得二進(jìn)制整數(shù)部分和小數(shù)部分。(4)將二進(jìn)制整數(shù)部分轉(zhuǎn)換為十進(jìn)制整數(shù);將二進(jìn)制小數(shù)部分轉(zhuǎn)換為十進(jìn)制小數(shù)。至此,完成了浮點(diǎn)數(shù)到十進(jìn)制數(shù)的轉(zhuǎn)換。3.2 十進(jìn)制數(shù)轉(zhuǎn)換為浮點(diǎn)數(shù)的程序設(shè)計(1)檢測十進(jìn)制數(shù)是否為零,若為零,則浮點(diǎn)數(shù)置成00h,00h,00h,00h。(2)保存十進(jìn)制數(shù)的符號位,將十進(jìn)制數(shù)的整數(shù)部分轉(zhuǎn)換為二進(jìn)制整數(shù),將十進(jìn)制數(shù)的小數(shù)部分轉(zhuǎn)換為二進(jìn)制小數(shù)(設(shè)二進(jìn)制整數(shù)為三個字節(jié),二進(jìn)制小數(shù)為兩個字節(jié))。(3)將浮點(diǎn)數(shù)的指數(shù)偏差eb置為7fh+23,檢測二進(jìn)制整數(shù)的最高位是否為1,不是,則將二進(jìn)制整數(shù)和二進(jìn)制小數(shù)聯(lián)合左移,左移一次,指數(shù)偏差減1,直至二進(jìn)制整數(shù)的最高位為1;隱含尾數(shù)整數(shù)的1,將二進(jìn)制整數(shù)的最高位改為數(shù)的符號位。至此,指數(shù)偏差eb單元及原二進(jìn)制整數(shù)的三個單元中的內(nèi)容,即構(gòu)成四字節(jié)浮點(diǎn)數(shù)。最后應(yīng)當(dāng)指出,本文所述32位浮點(diǎn)數(shù),精度相當(dāng)于7位十進(jìn)制數(shù);32位浮點(diǎn)數(shù)運(yùn)算程序在microchip公司提供的有關(guān)資料中均有,但是,在調(diào)試其浮點(diǎn)子程序時,發(fā)覺0減0的結(jié)果為00h,80h,00h,00h,而不是00h,00h,00h,00h,編程時應(yīng)注重。4 結(jié)語本文中的十進(jìn)制數(shù)與浮點(diǎn)數(shù)之間互相轉(zhuǎn)換的程序設(shè)計,在智能化儀表的鍵盤置數(shù)及數(shù)據(jù)顯示中,具有有用價值。這里提出了一種設(shè)計思路,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論