• <tbody id="w8jhq"><dfn id="w8jhq"><pre id="w8jhq"></pre></dfn></tbody>
  • <fieldset id="w8jhq"><pre id="w8jhq"></pre></fieldset>

    久久黄色 视频|我草AV|AV在线网站导航|色色97激情|无码人妻一区二区有奶水|日韩精品|大香蕉97视频|成人a站免费|日本黄色片|久久久久无码AV

    久久黄色 视频|我草AV|AV在线网站导航|色色97激情|无码人妻一区二区有奶水|日韩精品|大香蕉97视频|成人a站免费|日本黄色片|久久久久无码AV

    久久黄色 视频|我草AV|AV在线网站导航|色色97激情|无码人妻一区二区有奶水|日韩精品|大香蕉97视频|成人a站免费|日本黄色片|久久久久无码AV

    技術(shù)熱線: 4007-888-234
    設(shè)計(jì)開發(fā)

    專注差異化嵌入式產(chǎn)品解決方案 給智能產(chǎn)品定制注入靈魂給予生命

    開發(fā)工具

    提供開發(fā)工具、應(yīng)用測(cè)試 完善的開發(fā)代碼案例庫分享

    技術(shù)支持

    從全面的產(chǎn)品導(dǎo)入到強(qiáng)大技術(shù)支援服務(wù) 全程貼心伴隨服務(wù),創(chuàng)造無限潛能!

    新品推廣

    提供新的芯片及解決方案,提升客戶產(chǎn)品競(jìng)爭(zhēng)力

    新聞中心

    提供最新的單片機(jī)資訊,行業(yè)消息以及公司新聞動(dòng)態(tài)

    PIC單片機(jī)的浮點(diǎn)數(shù)及其與十進(jìn)制數(shù)之間的相互轉(zhuǎn)換

    更新時(shí)間: 2019-03-21
    閱讀量:556

         摘要重點(diǎn)說明浮點(diǎn)數(shù)的格式,十進(jìn)制數(shù)與浮點(diǎn)之間的相互轉(zhuǎn)換以及程序設(shè)計(jì)。


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


    1 浮點(diǎn)數(shù)的格式


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


    其中:&times;表示一位二進(jìn)制數(shù)0或1;eb 為指數(shù)的偏差;S為浮點(diǎn)數(shù)的符號(hào)位,S=0為正數(shù),S=1為負(fù)數(shù);小數(shù)點(diǎn)&ldquo;&middot;&rdquo;在符號(hào)位S的右邊;BY0 BY1 BY2為尾數(shù)的小數(shù)部分。


    應(yīng)特別注意:


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

    ⑵ 十進(jìn)制數(shù)0 的浮點(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ù)部分BY0 BY1 BY2。而指數(shù)偏差eb=P+7FH(其中的7FH 為指數(shù)的偏移量)。符號(hào)位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.57078125化為23位二進(jìn)制小數(shù),即是BY0 BY1 BY2,在最高位添上十進(jìn)制數(shù)的符號(hào)位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ù)為 eb S.BY0 BY1 BY2。由于浮點(diǎn)數(shù)隱含尾數(shù)的整數(shù)為1,故尾數(shù)X的實(shí)際值為:


    BY0 BY1 BY2;指數(shù)P=eb-7FH;故:十進(jìn)制數(shù)


    A=(-1)S&times;2P&times;X


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


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


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


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


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


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


    (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&rsquo;次(注:n&rsquo;=指數(shù)偏差eb-7FH),即求得二進(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è)計(jì)


    (1)檢測(cè)十進(jìn)制數(shù)是否為零,若為零,則浮點(diǎn)數(shù)置成00H,00H,00H,00H。


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


    (3)將浮點(diǎn)數(shù)的指數(shù)偏差eb置為7FH+23,檢測(cè)二進(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ù)的符號(hào)位。至此,指數(shù)偏差eb單元及原二進(jìn)制整數(shù)的三個(gè)單元中的內(nèi)容,即構(gòu)成四字節(jié)浮點(diǎn)數(shù)。


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


    4 結(jié)語


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


    久久黄色 视频|我草AV|AV在线网站导航|色色97激情|无码人妻一区二区有奶水|日韩精品|大香蕉97视频
  • <tbody id="w8jhq"><dfn id="w8jhq"><pre id="w8jhq"></pre></dfn></tbody>
  • <fieldset id="w8jhq"><pre id="w8jhq"></pre></fieldset>