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

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

單片機C語言快速精度除法方案

作者:huqin   來源:本站原創   點擊數:  更新時間:2014年03月10日   【字體:

目前的51單片機在進行帶小數點結果的除法一般可以采用浮點數計算的方式,但是浮點數計算有一個缺點就是非常耗時,在對時間要求嚴格的工況就不太適用。
筆者的工作室長期承接單片機、電路、機電液、工控、自動化、計算機軟件等項目,最近做了個單片機計算器的設計,在設計除法時利用長整形除法和取余運算,可以得到若干小數位的精度運算,與大家共享。
設計思路如下:
假設長整形除數a, 長整形被數b,步驟如下:
<1>得到除法的整數部分,c=a/b;
<2>設d為a%b,e=10*d,
得到除法的第一位小數,f=e/b;
(要點:將a余b的余數乘以10倍,再和被除數b相除,就得到小數點后一位小數)
<3>設g為e%b,h=10*g,
得到除法的第二位小數,i=h/b;
以此類推,可以得到除法的任意小數……
/**********************************下面附上C語言程序
**********************************************************/
unsigned long result, result_p;//表示除法結果的整數和小數部分
// result_p是小數部分,例如result_p=12345678,表示0.12345678
Void chufa(unsigned long chushu, unsigned long beichushu, unsigned char wei)
// wei表示精確到小數點后多少位
{ unsigned char i;
unsigned long tmp;
result=result_p=0;
if (beichushu!=0)//被除數必須不為0
{
if (wei==0)
{result=chushu/beichushu;//計算整數部分
result_p=0;
}
else
{result=chushu/beichushu;//計算整數部分
tmp=chushu%beichushu;
for (i=1;i<=wei;i++)//計算小數部分
{tmp=tmp*10;
result_p=result_p*10+tmp/beichushu;
tmp=tmp%beichushu;
}
}
}

關閉窗口

相關文章

主站蜘蛛池模板: 中文字幕亚洲视频 | 九九综合 | 伊人久久免费视频 | 一区二区国产精品 | 欧美精品欧美精品系列 | 伊人婷婷 | 国产精品久久久久久一区二区三区 | 久草精品在线 | 久久精品69 | 欧美日韩国产精品一区 | 国产精品人人做人人爽 | 亚洲欧美视频一区 | 日本精品一区二区三区视频 | 欧美一级二级在线观看 | 中文字幕国产第一页 | 精品国产一区二区三区观看不卡 | 日韩精品免费在线观看 | 精品久久久久一区二区国产 | 日韩三区| 一区二区三区影院 | 国产一区视频在线 | 怡红院怡春院一级毛片 | 久久精品国产免费高清 | 亚洲九九| 久久久久久久久久久久一区二区 | 特黄视频 | 国产一区二区三区免费 | 在线观看国产三级 | 成人片在线看 | 欧美久久一级 | 久久综合久色欧美综合狠狠 | 国产激情一区二区三区 | 亚洲bt 欧美bt 日本bt | 亚洲一区二区三区免费在线 | 黄 色 毛片免费 | 精品91久久 | 超碰天天 | 看特级黄色片 | 岛国av免费看 | 国产精品一区二区三区四区 | 国产综合在线视频 |