導航:首頁 > 操作系統 > 單片機如何接收浮點型數據

單片機如何接收浮點型數據

發布時間:2024-07-10 01:10:12

⑴ C51單片機浮點數運算

因為沒有電路,所以程序我就沒法給你寫,給你個思路.
第一,不知道你的a和b是什麼類型的,如果是定義成浮點型,那麼,可以這樣寫:
float f_Div = a/b;
如果兩個有一個是整形的,那麼,把整型強制轉換成浮點型:
float f_Div = (float)a/(float)b;
注意,那個f_Div變數必須是float型,才能有小數產生

第二,你要進行顯示,肯定要把各個位都取出來,這裡面肯定有一個取模運算,就是"%",
對於浮點型,不運行取模運算的,所以,你必須把浮點型轉換成整型,但是,不能強制轉換,
比如: unsigned int I_Div = (unsigned int)f_Div;這是不可以的,你的小數部分就沒有了.
所以,你必須要放大一定的倍數,根據你的要求,你是要保留三位,那麼,這里還有個問題,你的
小數點之前有幾位,決定了你小數點後面保留幾位.
比如,你得到的結果是 1.2345,那麼,你就保留1.23
如果你得到的結果是 12.345,那麼,就保留12.3
如果你得到的結果是 123.45,你就只能保留123了
如果得到的結果是 0.123,你就只能保留 0.12

所以可以看出,你的浮點型結果整數部分有多少位,決定了你的小數能保留多少位,所以還要進行如下運算:

unsigned int i_Div = unsigned int)f_Div;;
unsigned char Dot_Bit = 0; //---這個變數用來表示在第幾位上顯示小數點,因為
//---通過下面的操作,已經把小數變成整數了
if(I_Div >= 100) //---表示前面有3個整數部分位
{
; //---那就沒什麼可操作的,unsigned int i_Div = unsigned int)f_Div;;就符合要求
}
else if (I_DIV >= 10) //---表示整數部分有2位
{
I_DIV = f_Div *10;
Dot_Bit = 1; //---在右數第2個地方顯示小數點,也就是十位後顯示小數點
}
else
{
I_DIV = f_Div *10;
Dot_Bit = 2; //---在右數第2個地方顯示小數點,也就是最前面那位後面顯示
}
void Display(void)
{

unsigned char Hundred = I_Div/100;
unsigned char TenBit = (I_Div/%00)/10;
unsigned char TenBit = I_Div%10;
....... //然後就開始顯示了

}

閱讀全文

與單片機如何接收浮點型數據相關的資料

熱點內容
卸軍銜命令 瀏覽:798
單片機半圓形缺口是什麼意思 瀏覽:364
win10系統更新後加密 瀏覽:621
excel轉換為pdf 瀏覽:279
騰訊雲伺服器如何用vnc登錄 瀏覽:307
實現aes加密解密動態庫 瀏覽:166
windowsscp命令 瀏覽:449
php教育網站源碼 瀏覽:187
演算法工程師像什麼職業 瀏覽:270
盲均衡演算法程序 瀏覽:980
看pdf用什麼軟體好 瀏覽:267
教室管理系統演算法 瀏覽:492
imap郵箱伺服器地址 瀏覽:455
單片機所控制的數據採集器 瀏覽:434
悅耳解壓音樂視頻 瀏覽:642
工信銀行app怎麼升一類卡 瀏覽:257
idea自動編譯軟體 瀏覽:275
完整源碼壓縮包 瀏覽:446
魔獸世界用什麼查看伺服器 瀏覽:769
怎麼用安卓手機創建電子郵件 瀏覽:760