機電之家資源網(wǎng)
單片機首頁|單片機基礎(chǔ)|單片機應(yīng)用|單片機開發(fā)|單片機文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓信息
贊助商
如何在程序中得到一個浮點數(shù)的組成數(shù)
如何在程序中得到一個浮點數(shù)的組成數(shù)
 更新時間:2009-10-24 15:48:40  點擊數(shù):0
【字體: 字體顏色
筆者在編制應(yīng)用程序時有這樣的要求:將運算的結(jié)果(浮點數(shù))存入EEPROM中。我們知道,浮點數(shù)在C語言中是以IEEE格式存儲的,一個浮點數(shù)占用四個字節(jié),例如浮點數(shù)34.526存為(160,26,10,66)這四個數(shù)。要將一個浮點數(shù)存入EEPROM,實際上就是要存這四個數(shù)。那么如何在程序中得到一個浮點數(shù)的組成數(shù)呢? 
浮點數(shù)在存儲時,是存儲連續(xù)的字節(jié)中的,只要設(shè)法找到存儲位置,就可以得到這些數(shù)了。可以定義一個void的指針,將此指針指向需要存儲的浮點數(shù),然后將此指針強制轉(zhuǎn)化為char型,這樣,利用指針就可以得到組成該浮點數(shù)的各個字節(jié)的值了。具體程序如下: #define uchar unsigned char#define uint unsigned intvoid FtoC(void)

{ float a;

uchar i,*px

uchar x[4]; /*定義字符數(shù)組,準備存儲浮點數(shù)的四個字節(jié)*、

void *pf;

px=x; /*px指針指向數(shù)組x*/

pf=&a; /*void 型指針指向浮點數(shù)首地址*/

a=34.526;

for(i=0;i<4;i++)

{ *(px+i)=*((char *)pf+i); /*強制void 型指針轉(zhuǎn)成char型,因為*/

} /*void型指針不能運算*/

}

如果已將數(shù)存入EEPROM,要將其取出合并,方法也是一樣,可參考下面的程序。

#define uchar unsigned char#define uint unsigned int

void CtoF(void)

{ float a;

uchar i,*px

uchar x[4]={56,180,150,73};

void *pf;

px=x;

pf=&a;

for(i=0;i<4;i++)

{ *((char *)pf+i)=*(px+i);

}


  • 上一篇: PWM碼簡介及解碼原理
  • 下一篇: 沒有了
  • 發(fā)表評論   告訴好友   打印此文  收藏此頁  關(guān)閉窗口  返回頂部
    熱點文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機電之家 | 會員助手 | 免費鏈接

    點擊這里給我發(fā)消息66821730(技術(shù)支持)點擊這里給我發(fā)消息66821730(廣告投放) 點擊這里給我發(fā)消息41031197(編輯) 點擊這里給我發(fā)消息58733127(審核)
    本站提供的機電設(shè)備,機電供求等信息由機電企業(yè)自行提供,該企業(yè)負責信息內(nèi)容的真實性、準確性和合法性。
    機電之家對此不承擔任何保證責任,有侵犯您利益的地方請聯(lián)系機電之家,機電之家將及時作出處理。
    Copyright 2007 機電之家 Inc All Rights Reserved.機電之家-由機電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機電一體化學會
    中國行業(yè)電子商務(wù)100強網(wǎng)站

    網(wǎng)站經(jīng)營許可證:浙B2-20080178-1