第65节:大数据的除法运算
时间:11-22
来源:互联网
点击:
- Result;
- }
- else//开始猜值
- {
- resultRunStep=5;//先猜是5,从这里开始直接看以下 case 5 的详细讲解,其他case原理相同
- while_flag=0;
- while(1)
- {
- switch(resultRunStep)
- {
- case 1:
- ClearAllData(BCD8_MAX,DivLessTenArrayTemp);
- ClearAllData(BCD8_MAX,DivLessTenArrayResult);
- DivLessTenArrayTemp[0]=resultRunStep;
- multError=MultData(sourceData,DivLessTenArrayTemp,DivLessTenArrayResult);
- subError=SubData(destData,DivLessTenArrayResult,remData);//求余数
- *resultData=1; //商等于1
- while_flag=1; //退出循环
- break;
- case 2:
- ClearAllData(BCD8_MAX,DivLessTenArrayTemp);
- ClearAllData(BCD8_MAX,DivLessTenArrayResult);
- DivLessTenArrayTemp[0]=resultRunStep;
- multError=MultData(sourceData,DivLessTenArrayTemp,DivLessTenArrayResult);
- cmpError=CmpData(DivLessTenArrayResult,destData);
- if(cmpError==10) //等于
- {
- *resultData=2; //商等于2余数为0
- while_flag=1; //退出循环
- }
- else if(cmpError==11) //大于
- {
- resultRunStep=1;
- }
- else //小于
- {
- subError=SubData(destData,DivLessTenArrayResult,remData);//求余数
- *resultData=2; //商等于2
- while_flag=1; //退出循环
- }
- break;
- case 3:
- ClearAllData(BCD8_MAX,DivLessTenArrayTemp);
- ClearAllData(BCD8_MAX,DivLessTenArrayResult);
- DivLessTenArrayTemp[0]=resultRunStep;
- multError=MultData(sourceData,DivLessTenArrayTemp,DivLessTenArrayResult);
- cmpError=CmpData(DivLessTenArrayResult,destData);
- if(cmpError==10) //等于
- {
- *resultData=3; //商等于3余数为0
- while_flag=1; //退出循环
- }
- else if(cmpError==11) //大于
- {
- resultRunStep=2;
- }
- else //小于
- {
- resultRunStep=4;
- ClearAllData(BCD8_MAX,DivLessTenArrayBackup);
- for(i=0;i
- {
- DivLessTenArrayBackup[i]=DivLessTenArrayResult[i];
- }
- }
- break;
- case 4:
- ClearAllData(BCD8_MAX,DivLessTenArrayTemp);
- ClearAllData(BCD8_MAX,DivLessTenArrayResult);
- DivLessTenArrayTemp[0]=resultRunStep;
- multError=MultData(sourceData,DivLessTenArrayTemp,DivLessTenArrayResult);
- cmpError=CmpData(DivLessTenArrayResult,destData);
- if(cmpError==10) //等于
- {
- *resultData=4; //商等于4余数为0
- while_flag=1; //退出循环
- }
- else if(cmpError==11) //大于
- {
- subError=SubData(destData,DivLessTenArrayBackup,remData);//求余数
- *resultData=3; //商等于3
- while_flag=1; //退出循环
- }
- else //小于
- {
- subError=SubData(destData,DivLessTenArrayResult,remData);//求余数
- *resultData=4; //商等于4
- while_flag=1; //退出循环
- }
- break;
- case 5: //重点讲解一下case 5,其它case 原理相同,不多讲
- ClearAllData(BCD8_MAX,DivLessTenArrayTemp); //清空运算中需要用到的中间数组变量
- ClearAllData(BCD8_MAX,DivLessTenArrayResult); //清空运算中需要用到的中间数组变量
- DivLessTenArrayTemp[0]=resultRunStep;//把猜的变量形式的商传递给数组形式的变量
- multError=MultData(sourceData,DivLessTenArrayTemp,DivLessTenArrayResult);//猜的商跟除数像乘,看看结果跟被除数谁大。
- cmpError=CmpData(DivLessTenArrayResult,destData); //猜的商跟除数像乘,看看结果跟被除数谁大。
- if(cmpError==10) //等于 恭喜猜中是5
- {
- *resultData=5; //商等于5余数为0
- while_flag=1; //退出循环
大数据除法运 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)