|
[ 簡単な説明 ]
2数の加算を行います。符号を判定して、スレーブルーチン aux1( )、または alsub( )を呼び出します。 |
/* ladd.c */
#include "longint.h"
/* addition LINT + LINT */
LINT ladd(LINT a, LINT b)
{
LINT x;
int s;
if(a.len == 0) return b;
if(b.len == 0) return a;
s = (lcmp(a, b) >= 0);
if(a.sign == b.sign)
{
if(s) x = aux1(a, b);
else x = aux1(b, a);
x.sign = a.sign;
}
else
{
if(s)
{
x = alsub(a, b);
x.sign = a.sign;
}
else
{
x = alsub(b, a);
x.sign = (a.sign == -1) ? 0: -1;
}
}
return x;
}
|