導航:首頁 > 操作系統 > 單片機的浮點運算

單片機的浮點運算

發布時間:2024-03-28 18:16:09

㈠ 51單片機能不能計算浮點數,支不支持浮點運算有人說能,有人說不能。

不能直接硬體計算浮點(就是所謂的FPU),只能通過程序庫(調用函數)模擬完成,非常耗時!

㈡ 單片機中float的具體用法用法

float是單精度陪跡哪浮點數,在內存中佔4個位元組州中,可以定義變蘆碼量類型為 浮點數如
int a,b;
float c;
a=3;
b=4;
c=a/b; 則c=0.75;
如果c也是int型則
c=a/b 結果是0

㈢ 單片機能做浮點運算嗎

可以啊,但不同品牌、不同型號單片機的運算能力不同,同樣的運算代碼,會出現不同的運算速度。

㈣ 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;
....... //然後就開始顯示了

}

㈤ 在玩單片機 的時候總是會說什麼定點運算和浮點運算,始終不明白,這個浮點運算是什麼,

定點運算實際就是整數(定點小數,可以視為整數)運算,浮點運算實際就是實數運算。

假如處理器是32位的,也就是說32位都用來表示整數的話,那麼對於無符號整數就是 0~2^32-1,對於有符號整數就是 -2^31~2^31-1。如果是實數的話,機器有兩種辦法來表示,一種是定點,即小數點位置是固定的;另一種就是浮點,即小數點位置不固定,計算方法也比較麻煩,通常會比整數運算代價大很多。

因為計算機只能存儲整數,所以實數都是「約等於」出來的,浮點運算是很慢的而且會存在精度問題(也即誤差)。

基本所有處理器都支持定點運算,但不是所有的都支持浮點運算。

㈥ 單片機中C語言如何實現浮點除法運算

直接除就可以了
比如定義一個整形變數int x;
另一個整形變數int y;
浮點型變數float z;

浮點數除法:
z = (float)x / (float)y

㈦ 單片機 程序中能輸入小數嗎

這樣程序處理的也簡單、2,比如輸入1、5就可以、4.0245,還是逐位輸入的好、0不用用小數表示,否則處理小數的程序都會讓你吃不消,就逐位輸入1

㈧ 51單片機怎麼實現浮點運算

要先按裝浮點庫C51FPS.LIB,按裝路徑為:將 C51FPS.LIB 文件復制到 C:\Keil\C51\LIB\ 文件夾下面。
而後在程序中用浮點型變數float或double進行運算即可。

閱讀全文

與單片機的浮點運算相關的資料

熱點內容
編譯後的bak文件 瀏覽:257
php生成文件名 瀏覽:878
日照智能車輛移動機器人導航演算法 瀏覽:114
解壓力的食療 瀏覽:123
密鑰如何加密隨機數 瀏覽:379
統計學中pre的演算法 瀏覽:409
inline函數在編譯時不做類型檢查 瀏覽:266
經緯度查詢android 瀏覽:760
vivoz5x方舟怎麼進伺服器 瀏覽:496
vivox50安卓微信人臉支付怎麼開啟 瀏覽:893
cmd退出python命令 瀏覽:531
恢復u盤加密隱藏的文件 瀏覽:921
對某個人加密應該用公鑰 瀏覽:998
機頂盒中央1加密 瀏覽:95
單片機的出現有什麼影響 瀏覽:227
linuxtar備份系統 瀏覽:63
窗口滑鼠錄制編譯 瀏覽:84
雲伺服器可以攻擊嗎 瀏覽:558
主力吸籌派發區域指標源碼 瀏覽:695
單片機pc的低位元組怎麼算 瀏覽:230