欢迎来到天天文库
浏览记录
ID:52224013
大小:27.00 KB
页数:4页
时间:2020-03-25
《单片机用的滤波函数、浮点数转字符串函数和整数转字符串函数源码.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、//=====================Startfilter=================================================//函数名:filter//功能描述:平均值滤波//输入参数://intiput:要滤波的数据//intbuf[]:滤波缓存数组指针//uint*count:滤波计数器指针//uintlenght:滤波深度//longint*sum:缓存数组中所有数据的和指针//返回值:滤波后的平均值//=========================================================
2、=========================intfilter(intiput,intbuf[],uint*count,uintlenght,longint*sum){inta=0;intadtemp=0;adtemp=buf[lenght-1];for(a=lenght-1;a>0;a--){buf[a]=buf[a-1];}buf[0]=iput;if(*count3、==========Endfilter==========================================//==============================Startftostr=========================================/*//函数名:ftostr//输入参数:待转换数字,存放字符串,浮点小数后边位数//描述:将浮点型数据转换为字符串//返回值:字符串大小*///===================================================================4、================intftostr(floatfNum,charstr[],intdotsize){//定义变量intiSize=0;//记录字符串长度的数intn=0;//用作循环的临时变量char*p=str;//做换向时用的指针char*s=str;//做换向时用的指针charisnegative=0;//负数标志unsignedlonginti_predot;//小数点前的数unsignedlonginti_afterdot;//小数点后的数floatf_afterdot;//实数型的小数部分//判断是否为负数if(fNum<0){isne5、gative=1;//设置负数标志fNum=0-fNum;//将负数变为正数}i_predot=(unsignedlongint)fNum;//将小数点之前的数变为整数f_afterdot=fNum-i_predot;//单独取出小数点之后的数//根据设定的要保存的小数点后的位数,将小数点后相应的位数变到小数点之前for(n=dotsize;n>0;n--){f_afterdot=f_afterdot*10;}i_afterdot=(unsignedlongint)f_afterdot;//将小数点后相应位数的数字变为整数//先将小数点后的数转换为字符串n=dot6、size;while(i_afterdot>07、n>0){n--;str[iSize++]=i_afterdot%10+'0';//对10取余并变为ASCII码i_afterdot=i_afterdot/10;//对10取商}str[iSize++]='.';//加上小数点//处理小数点前为0的情况。if(i_predot==0)str[iSize++]='0';//再将小数点前的数转换为字符串while(i_predot>0){str[iSize++]=i_predot%10+'0';//对10取余并变为ASCII码i_predot=i_predot/10;//8、对10取商}if(isnegative==1)str[iSize++]='-';//如果是负数,则在最后加上负号str[iSize]=' ';//加上字符串结束标志p=str+iSize-1;//将P指针指向字符串结束标志之前for(;p-s>0;p--,s++)//将字符串中存储的数调头{*s^=*p;*p^=*s;*s^=*p;}//返回指针字符串大小returniSize;}//==============================Endftostr===========================================//======9、=====
3、==========Endfilter==========================================//==============================Startftostr=========================================/*//函数名:ftostr//输入参数:待转换数字,存放字符串,浮点小数后边位数//描述:将浮点型数据转换为字符串//返回值:字符串大小*///===================================================================
4、================intftostr(floatfNum,charstr[],intdotsize){//定义变量intiSize=0;//记录字符串长度的数intn=0;//用作循环的临时变量char*p=str;//做换向时用的指针char*s=str;//做换向时用的指针charisnegative=0;//负数标志unsignedlonginti_predot;//小数点前的数unsignedlonginti_afterdot;//小数点后的数floatf_afterdot;//实数型的小数部分//判断是否为负数if(fNum<0){isne
5、gative=1;//设置负数标志fNum=0-fNum;//将负数变为正数}i_predot=(unsignedlongint)fNum;//将小数点之前的数变为整数f_afterdot=fNum-i_predot;//单独取出小数点之后的数//根据设定的要保存的小数点后的位数,将小数点后相应的位数变到小数点之前for(n=dotsize;n>0;n--){f_afterdot=f_afterdot*10;}i_afterdot=(unsignedlongint)f_afterdot;//将小数点后相应位数的数字变为整数//先将小数点后的数转换为字符串n=dot
6、size;while(i_afterdot>0
7、n>0){n--;str[iSize++]=i_afterdot%10+'0';//对10取余并变为ASCII码i_afterdot=i_afterdot/10;//对10取商}str[iSize++]='.';//加上小数点//处理小数点前为0的情况。if(i_predot==0)str[iSize++]='0';//再将小数点前的数转换为字符串while(i_predot>0){str[iSize++]=i_predot%10+'0';//对10取余并变为ASCII码i_predot=i_predot/10;//
8、对10取商}if(isnegative==1)str[iSize++]='-';//如果是负数,则在最后加上负号str[iSize]=' ';//加上字符串结束标志p=str+iSize-1;//将P指针指向字符串结束标志之前for(;p-s>0;p--,s++)//将字符串中存储的数调头{*s^=*p;*p^=*s;*s^=*p;}//返回指针字符串大小returniSize;}//==============================Endftostr===========================================//======
9、=====
此文档下载收益归作者所有