以文本方式查看主题 - 计算机科学论坛 (http://bbs.xml.org.cn/index.asp) -- 『 C/C++编程思想 』 (http://bbs.xml.org.cn/list.asp?boardid=61) ---- 求救:c中多字节除法的实现 (http://bbs.xml.org.cn/dispbbs.asp?boardid=61&rootid=&id=29640) |
-- 作者:qiner -- 发布时间:3/31/2006 10:22:00 AM -- 求救:c中多字节除法的实现 unsigned char div(unsigned char a[],int n1,unsigned char b[],int n2,unsigned char d[]) // d=a mod b {int i,j,k=0; unsigned char *b1; unsigned char *temp; b1=(unsigned char *)malloc(n1); temp=(unsigned char *)malloc(n1); //把数组长度为n2的除数扩展到与被除数相同大小的数组 for(i=0;i<n2;i++) b1[n1-1-i]=b[n2-1-i]; for (i=0;i<n1-n2;i++) b1[i]=0; k=cmp(a,b1,n1);/*判断除数与被除数大小,若被除数大则返回1*/ while( k==1) {sub(a,b1,n1,temp); for(i=0;i<n1;i++) { a[i]=temp[i]; temp[i]=0;} k=cmp(a,b1,n1);} if(k==0){for(i=0;i<n1;i++) d[i]=0;} if(k==-1){for(i=0;i<n1;i++) d[i]=a[i];} } 调试中,有时候会陷入循环,一直跳不出来.是否这个算法效率太低,有没有更优的算法. 各位大侠请多多指点一下.救命啊. |
W 3 C h i n a ( since 2003 ) 旗 下 站 点 苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》 |
3,625.000ms |