久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

單片機(jī)C語言快速精度除法方案

作者:huqin   來源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時(shí)間:2014年03月10日   【字體:

目前的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;
以此類推,可以得到除法的任意小數(shù)……
/**********************************下面附上C語言程序
**********************************************************/
unsigned long result, result_p;//表示除法結(jié)果的整數(shù)和小數(shù)部分
// result_p是小數(shù)部分,例如result_p=12345678,表示0.12345678
Void chufa(unsigned long chushu, unsigned long beichushu, 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;
}
}
}

關(guān)閉窗口

相關(guān)文章

主站蜘蛛池模板: 日本污视频| 日韩中出 | 一二三四在线视频观看社区 | 亚洲精选久久 | 999国产精品视频免费 | 日本福利片 | 成人免费视频网站 | 啪啪综合网| 精品国产18久久久久久二百 | 中文字幕亚洲视频 | 九一在线| 成人精品 | 亚洲欧美综合精品久久成人 | 国产一区二区三区在线 | 国产精品成人一区二区三区 | 国内精品久久久久久久 | 久久午夜视频 | 欧美福利在线 | 成人在线免费电影 | 日本一区二区不卡 | 欧美亚洲综合久久 | 综合久久综合久久 | 国产欧美在线观看 | 日韩欧美国产精品 | 国产一区在线视频 | 在线国产一区二区 | 国产情侣啪啪 | 欧美福利影院 | 国产精品无码久久久久 | 99在线播放 | 麻豆精品国产91久久久久久 | 日韩欧美国产一区二区 | 91啪影院 | 久久精品亚洲欧美日韩精品中文字幕 | 干干干操操操 | 欧美日本久久 | 欧美激情第一区 | 国产成人一区二区三区久久久 | 亚洲一区二区免费视频 | 亚洲综合小视频 | av官网在线 |