微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 第65节:大数据的除法运算

第65节:大数据的除法运算

时间:11-22 来源:互联网 点击:

  1. }
  2. else if(cmpError==11) //大于 猜不中,大了,就继续往小的猜,看看有没有可能是3
  3. {
  4. resultRunStep=3;
  5. }
  6. else //小于 猜不中,小了,就继续往大的猜,看看有没有可能是7
  7. {
  8. resultRunStep=7;
  9. ClearAllData(BCD8_MAX,DivLessTenArrayBackup);
  10. for(i=0;i
  11. {
  12. DivLessTenArrayBackup[i]=DivLessTenArrayResult[i];
  13. }
  14. }
  15. break;
  16. case 6:
  17. ClearAllData(BCD8_MAX,DivLessTenArrayTemp);
  18. ClearAllData(BCD8_MAX,DivLessTenArrayResult);
  19. DivLessTenArrayTemp[0]=resultRunStep;
  20. multError=MultData(sourceData,DivLessTenArrayTemp,DivLessTenArrayResult);
  21. cmpError=CmpData(DivLessTenArrayResult,destData);
  22. if(cmpError==10) //等于
  23. {
  24. *resultData=6; //商等于6余数为0
  25. while_flag=1; //退出循环
  26. }
  27. else if(cmpError==11) //大于
  28. {
  29. subError=SubData(destData,DivLessTenArrayBackup,remData);//求余数
  30. *resultData=5; //商等于5
  31. while_flag=1; //退出循环
  32. }
  33. else //小于
  34. {
  35. subError=SubData(destData,DivLessTenArrayResult,remData);//求余数
  36. *resultData=6; //商等于6
  37. while_flag=1; //退出循环
  38. }
  39. break;
  40. case 7:
  41. ClearAllData(BCD8_MAX,DivLessTenArrayTemp);
  42. ClearAllData(BCD8_MAX,DivLessTenArrayResult);
  43. DivLessTenArrayTemp[0]=resultRunStep;
  44. multError=MultData(sourceData,DivLessTenArrayTemp,DivLessTenArrayResult);
  45. cmpError=CmpData(DivLessTenArrayResult,destData);
  46. if(cmpError==10) //等于
  47. {
  48. *resultData=7; //商等于7余数为0
  49. while_flag=1; //退出循环
  50. }
  51. else if(cmpError==11) //大于
  52. {
  53. resultRunStep=6;
  54. }
  55. else //小于
  56. {
  57. resultRunStep=8;
  58. ClearAllData(BCD8_MAX,DivLessTenArrayBackup);
  59. for(i=0;i
  60. {
  61. DivLessTenArrayBackup[i]=DivLessTenArrayResult[i];
  62. }
  63. }
  64. break;
  65. case 8:
  66. ClearAllData(BCD8_MAX,DivLessTenArrayTemp);
  67. ClearAllData(BCD8_MAX,DivLessTenArrayResult);
  68. DivLessTenArrayTemp[0]=resultRunStep;
  69. multError=MultData(sourceData,DivLessTenArrayTemp,DivLessTenArrayResult);
  70. cmpError=CmpData(DivLessTenArrayResult,destData);
  71. if(cmpError==10) //等于
  72. {
  73. *resultData=8; //商等于8余数为0
  74. while_flag=1; //退出循环
  75. }
  76. else if(cmpError==11) //大于
  77. {
  78. subError=SubData(destData,DivLessTenArrayBackup,remData);//求余数
  79. *resultData=7; //商等于7
  80. while_flag=1; //退出循环
  81. }
  82. else //小于
  83. {
  84. resultRunStep=9;
  85. ClearAllData(BCD8_MAX,DivLessTenArrayBackup);
  86. for(i=0;i
  87. {
  88. DivLessTenArrayBackup[i]=DivLessTenArrayResult[i];
  89. }
  90. }
  91. break;
  92. case 9:
  93. ClearAllData(BCD8_MAX,DivLessTenArrayTemp);
  94. ClearAllData(BCD8_MAX,DivLessTenArrayResult);
  95. DivLessTenArrayTemp[0]=resultRunStep;
  96. multError=MultData(sourceData,DivLessTenArrayTemp,DivLessTenArrayResult);
  97. cmpError=CmpData(DivLessTenArrayResult,destData);
  98. if(cmpError==10) //等于
  99. {
  100. *resultData=9; //商等于9余数为0
  101. while_flag=1; //退出循环
  102. }
  103. else if(cmpError==11) //大于
  104. {
  105. subError=SubData(destData,DivLessTenArrayBackup,remData);//求余数
  106. *resultData=8; //商等于8
  107. whi

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top