社区
数据结构与算法
帖子详情
如何实现长整数的除法
ahuacxh
2001-05-07 09:48:00
我的长整数是用long型的数组存储的,每个数组元素存长整数的四位,有没有什么好的算法实现两个长整数相除
...全文
394
15
打赏
收藏
如何实现长整数的除法
我的长整数是用long型的数组存储的,每个数组元素存长整数的四位,有没有什么好的算法实现两个长整数相除
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
陈硕
2001-10-01
打赏
举报
回复
gz
ahuacxh
2001-05-21
打赏
举报
回复
SAsura:
收到了,谢谢
SAsura
2001-05-21
打赏
举报
回复
已经发了,收到了没有?
azzh
2001-05-21
打赏
举报
回复
SAsura(SAsura)
能把你做的那个程序也发给我一份吗?谢谢!
dmlc@gliet.edu.cn
ahuacxh
2001-05-19
打赏
举报
回复
SAsura:
能把你做的那个类发给我吗?谢谢,一定给分。
ahua_cxh@163.net
SAsura
2001-05-19
打赏
举报
回复
我做过一个长整数运算的类,加、减、乘,移位一应具全就是没有除,这个类存储时使用的是二进制,显示时化为十进制。应该可以用你们说的硬件除法原理来做除法,不过我不知道这个算法是什么。
ahuacxh
2001-05-18
打赏
举报
回复
windboar:
我也在想如何模拟计算机硬件除法的原理来做,要把数转化为二进制可以考虑用位运算,但是还有许多具体的操作还没想好
starfish:
谢谢了,不过我还没学汇编,给我我也看不懂
wildboar
2001-05-18
打赏
举报
回复
ahuacxh(阿华):
好!!!
starfish
2001-05-17
打赏
举报
回复
如果用汇编来写会更简单,因为有很多80x86指令支持长整数运算(BCD码运算) 我学汇编的时候写过不少这类程序,你要的话,我找找看
wildboar
2001-05-17
打赏
举报
回复
可不可以用硬件的不恢复余数法!!!
不过前提是必须是二进制!!!!!
QQ:51739451
ahuacxh
2001-05-16
打赏
举报
回复
我自己写了一个程序,我的长整数是用long型的数组存储的,每个数组元素存长整数的四位
算法思想如下:(长整数的加、减、乘和比较大小已实现,下面写的/都为整除)主要难点是在试商上,例如:
a1, a2
_________________
67,8900)5234,5678,9034
就是要确定a1,a2的值,a1、a2为0~9999的数
下面是试商的过程,首先令a1=5234/67=78 ,(假设长整数的乘法已实现),
然后计算a1 * 67,8900 =5295,4200 因为大于5234,5678,再进一步试商,
计算5295,4200-5234,5678=60,8522 由于试的商太大了,所以a1要减小
a1=a1-(60/67+1) ,得到a1=77,再次计算a1 * 67,8900=5227,5300 ,
5234,5678-5227,5300 =7,0378 这个数小于除数,因些结束试商,a1=77,
然后就相当于要计算
77, a2
________________
67,8900)5234,5678,9034
5227,5300
----------
7,0378,9034
将7,0378,9034,作一些变化,使得它的占用的数组的个数和除数相同
即70378,9034 ,然后试商,a2=70378/67=1050 ,a2 * 67,8900=71284,5000
71284,5000-70378,9034=905,5966 a2=a2-(905/67+1)=1036
1036*67,8900=70334,0400 70378,9034-70334,0400=44,8634 因为44,8634小于
除数,结束试商,a2=1036
请大家分析一下这个算法有什么漏洞,我的程序有些结果正确,有些结果不正确。上面我的表述
可能有些不清楚,但我想通过这个实例大家能大概明白吧,简单说来就是先保证被除数和除数位
数相同(这里位数是指占用几个数组元素),然后用被除数最高位除以除数最高位来试商,如果试
的商大了,就减小一些(减小的方法如上实例分析的那样),如果试的商太小了,就加大一些,当
试的商乘以除数这个结果与被除数之差小于除数时结束试商,其实就是模拟手算。
seedundersnow
2001-05-15
打赏
举报
回复
好象没有效率特别高的算法,基本上都是移位相减的。
yuddian
2001-05-13
打赏
举报
回复
我也是正在写一个这样的程序,如果有什么好的算法,可以共享啊!!
runrun
2001-05-12
打赏
举报
回复
好好想想应该不难吧
windindance
2001-05-08
打赏
举报
回复
循环相减。
尹成Python27天入门到项目实战
常量与变量区别标识符关键字输入输出id求地址type求类型python变量是地址赋值可以改变类型python主要数据类型复数数据类型自适应变
长
整数
intdel作用连续赋值交互对称赋值字符串转化与输入输出编程wmv多行拆分多行...
大数
除法
(超
长
整数
运算
除法
器)详解
在大数运算中,比较难
实现
的应该是高精度/高精度的
除法
器。 一、原理 1.大数存储 先说说大数在C语言程序中是怎么存储的。我们使用
长
度为N的int数组来存储无符号超
长
整数
,其中数组每个元素存储的值上限为M。如下...
C语言大
整数
除法
和大
整数
幂一样伪大
整数
除法
,第一个是大
整数
第二个为普通
整数
,且不考虑被除数比除数小的情况以及为0的情况 究极伪(这里除数和被除数有点搞混了小学没学好) 思路,既然除数是普通
整数
那么就可以直接利用
整数
的加...
用移位和加减运算
实现
无符号
整数
除法
同样是同学遇到的面试题,面试官问的原题是如何用移位和加减
实现
除以3的操作,在此略微扩充一下,
实现
无符号
整数
除法
,但是返回值也为无符号整型。 方法一:类似小学学习的
除法
运算,从高位开始减去除数,此处用...
通过加减法、移位
实现
整数
乘、
除法
(仅仅保留商)
文章目录通过加减法、移位
实现
整数
乘、
除法
(仅仅保留商)1. 先导2. 非负
整数
的乘
除法
2.1 乘法2. 2
除法
3.
整数
的乘法(位运算
实现
)3.1 乘法3.2
除法
4. 参考链接 通过加减法、移位
实现
整数
乘、
除法
(仅仅保留商) 1...
数据结构与算法
33,008
社区成员
35,326
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章