當(dāng)前位置:首頁 > 單片機 > 單片機
[導(dǎo)讀]在我們設(shè)計的儀表中采用PIC系列單片機,碰到了浮點數(shù)的運算問題,查閱其有關(guān)資料發(fā)現(xiàn),其浮點數(shù)的格式及其與十進制數(shù)之間的轉(zhuǎn)換,與我們常用的MCS-51單片機所提供的三字節(jié)、四字節(jié)浮點數(shù)完全不同,本文將說明其浮點數(shù)

在我們設(shè)計的儀表中采用PIC系列單片機,碰到了浮點數(shù)的運算問題,查閱其有關(guān)資料發(fā)現(xiàn),其浮點數(shù)的格式及其與十進制數(shù)之間的轉(zhuǎn)換,與我們常用的MCS-51單片機所提供的三字節(jié)、四字節(jié)浮點數(shù)完全不同,本文將說明其浮點數(shù)的格式及其與十進制數(shù)之間的轉(zhuǎn)換和程序設(shè)計步驟。

1 浮點數(shù)的格式

Microchip公司單片機所采用的浮點數(shù)格式是IEEE-754標(biāo)準(zhǔn)的變異型。32位浮點數(shù)格式為: 


  
其中:×表示一位二進制數(shù)0或1;eb為指數(shù)的偏差;S為浮點數(shù)的符號位,S=0為正數(shù),S=1為負(fù)數(shù);小數(shù)點“·”在符號位S的右邊;BY0BY1BY2為尾數(shù)的小數(shù)部分。  

應(yīng)特別注意:

⑴浮點數(shù)隱含其整數(shù)部分為1。

⑵十進制數(shù)0的浮點數(shù)表示為00H,00H,00H,00H。

2 浮點數(shù)與十進制數(shù)之間的相互轉(zhuǎn)換

2.1 十進制數(shù)轉(zhuǎn)換成浮點數(shù)

設(shè):十進數(shù)為A,則2Z=A,Z=lnA/ln2,指數(shù)P=int(z);尾數(shù)部分X:X=A/2P,其整數(shù)部分隱含為1(零除外),將其小數(shù)部分按原碼格式化為二進制數(shù),即為尾數(shù)的小數(shù)部分BY0BY1BY2。而指數(shù)偏差eb=P+7FH(其中的7FH為指數(shù)的偏移量)。符號位S,視十進制數(shù)的正負(fù)而確定。

例如十進制數(shù)50.265化為32位規(guī)格化浮點數(shù):A=50.265,則Z=ln50.265/ln2,P=int(Z),故P=5;X=A/2P=50.265/25=1.57078125,將0.57078125化為23位二進制小數(shù),即是BY0BY1BY2,在最高位添上十進制數(shù)的符號位S(因十進制數(shù)為正數(shù),故S=0);而eb=P+7FH,所以,十進制數(shù)50.265的32位規(guī)格化浮點數(shù)即為84H,49H,0FH,5CH。

2.2 浮點數(shù)轉(zhuǎn)換為十進制數(shù)

設(shè)浮點數(shù)為ebS.BY0BY1BY2。由于浮點數(shù)隱含尾數(shù)的整數(shù)為1,故尾數(shù)X的實際值為:

BY0BY1BY2;指數(shù)P=eb-7FH;故:十進制數(shù)

A=(-1)S×2P×X

例:32位規(guī)格化浮點數(shù)84H,49H,0FH,5CH轉(zhuǎn)換為十進制數(shù)。

符號位S=0;指數(shù)P=84H-7FH,故P=5;尾數(shù)的小數(shù)部分為49H,0FH,5CH左移一位,而尾數(shù)的整數(shù)部分隱含為1,故尾數(shù)X的實際值為:1.57078123;十進制數(shù)A=(-1)0×25×1.57078123,即A=50.265。

3 浮點數(shù)與十進制數(shù)相互轉(zhuǎn)換的程序設(shè)計

3.1 浮點數(shù)轉(zhuǎn)換為十進制數(shù)的程序設(shè)計

(1)檢測浮點數(shù)是否為零;若為零,則十進制數(shù)整數(shù)部分和小數(shù)部分均為零。

(2)保存浮點數(shù)的符號位,將浮點數(shù)隱含的1置于浮點數(shù)的符號位,指數(shù)偏差eb加1,小數(shù)點移到原浮點數(shù)的符號位之前。

(3)判斷指數(shù)偏差大于7FH否?若小于等于7FH,則該進制數(shù)整數(shù)部分為零,浮點數(shù)尾數(shù)部分右移n次(注:n=7FH-指數(shù)偏差eb),即求得二進制小數(shù)部分。若大于7FH,則將小數(shù)點右移n’次(注:n’=指數(shù)偏差eb-7FH),即求得二進制整數(shù)部分和小數(shù)部分。

(4)將二進制整數(shù)部分轉(zhuǎn)換為十進制整數(shù);將二進制小數(shù)部分轉(zhuǎn)換為十進制小數(shù)。至此,完成了浮點數(shù)到十進制數(shù)的轉(zhuǎn)換。

3.2 十進制數(shù)轉(zhuǎn)換為浮點數(shù)的程序設(shè)計

(1)檢測十進制數(shù)是否為零,若為零,則浮點數(shù)置成00H,00H,00H,00H。

(2)保存十進制數(shù)的符號位,將十進制數(shù)的整數(shù)部分轉(zhuǎn)換為二進制整數(shù),將十進制數(shù)的小數(shù)部分轉(zhuǎn)換為二進制小數(shù)(設(shè)二進制整數(shù)為三個字節(jié),二進制小數(shù)為兩個字節(jié))。

(3)將浮點數(shù)的指數(shù)偏差eb置為7FH+23,檢測二進制整數(shù)的最高位是否為1,不是,則將二進制整數(shù)和二進制小數(shù)聯(lián)合左移,左移一次,指數(shù)偏差減1,直至二進制整數(shù)的最高位為1;隱含尾數(shù)整數(shù)的1,將二進制整數(shù)的最高位改為數(shù)的符號位。至此,指數(shù)偏差eb單元及原二進制整數(shù)的三個單元中的內(nèi)容,即構(gòu)成四字節(jié)浮點數(shù)。

最后應(yīng)該指出,本文所述32位浮點數(shù),精度相當(dāng)于7位十進制數(shù);32位浮點數(shù)運算程序在Microchip公司提供的有關(guān)資料中均有,但是,在調(diào)試其浮點子程序時,發(fā)現(xiàn)0減0的結(jié)果為00H,80H,00H,00H,而不是00H,00H,00H,00H,編程時應(yīng)注意。

4 結(jié)語

本文中的十進制數(shù)與浮點數(shù)之間相互轉(zhuǎn)換的程序設(shè)計,在智能化儀表的鍵盤置數(shù)及數(shù)據(jù)顯示中,具有實用價值。這里提出了一種設(shè)計思路,沒有復(fù)雜的算法,程序設(shè)計亦較簡單,工作量較少,可利用Microchip公司提供的現(xiàn)成子程序?qū)崿F(xiàn)十進制整數(shù)與二進制整數(shù)的相互轉(zhuǎn)換,十進制小數(shù)與二進制小數(shù)的相互轉(zhuǎn)換。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉