16*16位的乘法程序

来源:百度知道 编辑:UC知道 时间:2024/05/11 16:21:44
谢谢,急需!!!!!
在弹片机中运行的程序

10进制还是2进制?
有啥具体要求?
有做好的库吧,上网搜搜就好

程序没时间帮你做了,提供点思路:

如果X * Y 对于计算机不能支持的大整形,需要划分段乘了
比如 X = ABC;Y = abc (A,a等为块,每块有K位 你可以定几位随你)

ABC * abc
= (A+B+C)a +(A+B+C)b*10eK+(A+B+C)c*10e(K*2)
(10eK 表示10的K次方;10e(K*2) 表示10的2K次方)
分成三部分
A1 =(A+B+C)a = Dd
A2 =(A+B+C)b*10eK = Ee*10eK
A3 =(A+B+C)c*10e(2K) = Ff*10e(2K)
Dd,Ee,Ff (大写为高位 小写为低位 以下同)

用A1的高位+A2的低位 即: D+e =Gg
则A1+A2的结果: (E+G)gd 设G+E = Hh
者A1+A2结果可写成 Hhgd

然后需要加上A3
gd位不会改变了,已经是结果的后两位了。
结果应该是(Hh+Ff)gd

如果低位h+f = Jj; 高位H+F = Kk;
结果为 K(k+j)jgd 设k+j = Ll
结果为(K+L)ljgd 设K+L = Mm
最终结果 Mmljgd

那么大的为数个人电脑的位数不够

难啊