用C实现一个函数,该函数完成两个100字节长的整数a、b的乘法,并将结果保存到c。
unsigned char * multi(unsigned char *a, unsigned char *b, unsigned char *c){
}
用C实现一个函数,该函数完成两个100字节长的整数a、b的乘法,并将结果保存到c。
unsigned char * multi(unsigned char *a, unsigned char *b, unsigned char *c){
}
用人来模拟机器算。
我的话会采用一个左移, 一个右移来算乘法
核心的就是下边的:
a * b =
if b == 0 , return 0
if b ends with 1, return a (b-1 + 1) = a + a (b -1) , 这里减1就是把最末位改成0,会增加一个大数的加, 然后里面有递归
else return (a 2) (b / 2) 这是用移位来计算,左移就是在串最后加个0, 右移就是去掉最后一个0, 然后递归。
以上纯是我自己的想法, 没作过编码哈
搜下大数乘法。