PIC單片機浮點數與十進制數之間的轉換_第1頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

2、的浮點數表示為00h,00h,00h,00h。2 浮點數與十進制數之間的互相轉換2.1 十進制數轉換成浮點數設:十進數為a,則2z=a,z=lna/ln2,指數p=int(z);尾數部分x:x=a/2p,其整數部分隱含為1(零除外),將其小數部分按原碼格式化為二進制數,即為尾數的小數部分by0by1by2。而指數偏差eb=p+7fh(其中的7fh為指數的偏移量)。符號位s,視十進制數的正負而確定。例如十進制數50.265化為32位規(guī)格化浮點數: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位二進制小數,即是by0by1by2,在最高位添上十進制數的符號位s(因十進制數為正數,故s=0);而eb=p+7fh,所以,十進制數50.265的32位規(guī)格化浮點數即為84h,49h,0fh,5ch。2.2 浮點數轉換為十進制數設浮點數為ebs.by0by1by2。因為浮點數隱含尾數的整數為1,故尾數x的實際值為:by0by1by2;指數p=eb7fh;故:十進制數a=(1)s×2p×x例:32位規(guī)格化浮點數84h,49h,0fh,5ch轉換為十進制數。符號位s=0;指數p=84h7fh,故p=5;尾數的小數部分為49h,0fh,5ch左移一位,而尾數的整數部

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

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

溫馨提示

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

評論

0/150

提交評論