I don't know how to implement div algorithm .
Can anybody help me out ?
Another question: The following codes are my mul algorithm implementation. Is there any other ways to implement mul algorithm ?
Code: Select all
private boolean mulBytes(byte[] A, byte[] B, short len, byte[] C)
{
short a;
short b;
short sumC;
short m;
short n ;
short t ;
clearArray(bufferCC);
m= (short)(len-1); //7
for( n=(short)(len-1); n>=0; n--)
{
clearArray(bufferCA);
clearArray(bufferCB);
//sumC = 0;
t= (short)(m-n);
for( short i=0; i<=t; i++)
{
a = (short)(A[m-i] & 0xFF);
b = (short)(B[n+i] & 0xFF);
sumC = (short)( a*b);
bufferCB[0] = 0;
bufferCB[1] = (byte)(sumC >> 8);
bufferCB[2] = (byte)(sumC & 0xFF);
addBytes(bufferCA, bufferCB, (short)3, bufferCA);
}
//sumC += (short)(bufferC[0]& 0xFF );
//bufferC[0] = (byte)(sumC >> 8);
//bufferC[1] = (byte)(sumC & 0xFF);
addBytes(bufferCA, bufferCC, (short)3, bufferCA);
C[m+n+1] = bufferCA[2];
bufferCC[0]=0;
bufferCC[1] =bufferCA[0];
bufferCC[2] = bufferCA[1];
}
n=0;
for( m=(short)(len-2); m>=0; m--)
{
clearArray(bufferCA);
clearArray(bufferCB);
//sumC = 0;
t= (short)(m-n);
for( short i=0; i<=t; i++)
{
a = (short)(A[m-i] & 0xFF);
b = (short)(B[n+i] & 0xFF);
//sumC += (short)( a*b);
sumC = (short)( a*b);
bufferCB[0] = 0;
bufferCB[1] = (byte)(sumC >> 8);
bufferCB[2] = (byte)(sumC & 0xFF);
addBytes(bufferCA, bufferCB, (short)3, bufferCA);
}
addBytes(bufferCA, bufferCC, (short)3, bufferCA);
C[m+n+1] = bufferCA[2];
bufferCC[0]=0;
bufferCC[1] =bufferCA[0];
bufferCC[2] = bufferCA[1];
}
C[0] = bufferCC[2];
return (bufferCC[1] != 0);
}