日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

c语言除法连续运算,单片机C语言快速精度除法方案

發(fā)布時(shí)間:2023/12/14 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言除法连续运算,单片机C语言快速精度除法方案 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

該樓層疑似違規(guī)已被系統(tǒng)折疊?隱藏此樓查看此樓

目前的51單片機(jī)在進(jìn)行帶小數(shù)點(diǎn)結(jié)果的除法一般可以采用浮點(diǎn)數(shù)計(jì)算的方式,但是浮點(diǎn)數(shù)計(jì)算有一個(gè)缺點(diǎn)就是非常耗時(shí),在對(duì)時(shí)間要求嚴(yán)格的工況就不太適用。

筆者的工作室長(zhǎng)期承接單片機(jī)、電路、機(jī)電液、工控、自動(dòng)化、計(jì)算機(jī)軟件等項(xiàng)目,最近做了個(gè)單片機(jī)計(jì)算器的設(shè)計(jì),在設(shè)計(jì)除法時(shí)利用長(zhǎng)整形除法和取余運(yùn)算,可以得到若干小數(shù)位的精度運(yùn)算,與大家共享。

設(shè)計(jì)思路如下:

假設(shè)長(zhǎng)整形除數(shù)a, 長(zhǎng)整形被數(shù)b,步驟如下:

<1>得到除法的整數(shù)部分,c=a/b;

<2>設(shè)d為a%b,e=10*d,

得到除法的第一位小數(shù),f=e/b;

(要點(diǎn):將a余b的余數(shù)乘以10倍,再和被除數(shù)b相除,就得到小數(shù)點(diǎn)后一位小數(shù))

<3>設(shè)g為e%b,h=10*g,

得到除法的第二位小數(shù),i=h/b;

以此類(lèi)推,可以得到除法的任意小數(shù)……

/**********************************下面附上C語(yǔ)言程序

**********************************************************/

unsignedlong result, result_p;//表示除法結(jié)果的整數(shù)和小數(shù)部分

//result_p是小數(shù)部分,例如result_p=12345678,表示0.12345678

Void chufa(unsigned long chushu, unsigned longbeichushu, unsigned char wei)

// wei表示精確到小數(shù)點(diǎn)后多少位

{ unsigned char i;

unsigned long tmp;

result=result_p=0;

if (beichushu!=0)//被除數(shù)必須不為0

{

if (wei==0)

{result=chushu/beichushu;//計(jì)算整數(shù)部分

result_p=0;

}

else

{result=chushu/beichushu;//計(jì)算整數(shù)部分

tmp=chushu%beichushu;

for (i=1;i<=wei;i++)//計(jì)算小數(shù)部分

{tmp=tmp*10;

result_p=result_p*10+tmp/beichushu;

tmp=tmp%beichushu;

}

}

}

}

總結(jié)

以上是生活随笔為你收集整理的c语言除法连续运算,单片机C语言快速精度除法方案的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。