小编the*_*ist的帖子

将两个128位整数相乘

我试图在C中乘以两个128位整数.

这是我的算法:

将两个128位序列拆分为S1和S2.

然后将S1分成S11(前/上半部分)和S12(后/下半部分)并将S2分成S21(前/上半部分)和S22(后/下半部分).

将S12乘以S22 ... = S1222.

将S11乘以S21 ... = S1121,然后将其乘以2 ^ 128进行位移

将S1222和S1121组合成新阵列的前半部分和后半部分.我们称之为"Array1".新数组的长度是S1的两倍.

然后我们必须将S12乘以S21并将S11乘以S22.我将这两个相乘得到S1221和S1122(并相应地对它们进行位移).现在我必须将它们添加到Array1.这是我要求帮助的部分.我不知道如何将这些一个一个地添加到Array1.请记住,当您从Array1的3/4到Array1的1/4时,可能会有一个1的进位,因为这是需要添加S1221和S1122的跨度.

我的问题是:如何将dstM1和dstM2添加到已填充的数组d中?

c integer-arithmetic

7
推荐指数
2
解决办法
1017
查看次数

标签 统计

c ×1

integer-arithmetic ×1