多倍長整数の大小比較


関数名
mpCmp  多倍長整数同士の大小比較
形式
int mpCmp(int *a, int *b);
引数
a, b  多倍長整数
関数値
aはbよりも大きい場合は正の値、小さい場合は負の値、
等しい場合はゼロの値
注意事項
配列の各要素 ai(i は 1 以上)は1語を表し、 1語で表し得る最大の整数は 9999 とする。語の長さは a0 の値で表す。すなわち、多倍長整数は
anKn-1+ an-1Kn-2+...+a2K+ a1
で表現する。ただし、K=10000、n=a0

用例(mpCmp-test.c

プログラム(mpCmp.c
int mpCmp(int *a, int *b)
{
    int  *aa;

    if (*a != *b) return *a - *b;

    aa = a;
    a += *aa;
    b += *aa;
    while (a != aa) {
        if (*a != *b) return *a - *b;
        a--;
        b--;
    }
    return 0;
}
説明
語数の大きさをまず比べる。同じ語数ならば、上位語より順に比べて いけばよい。

関連関数
多倍長整数の加算多倍長整数の減算多倍長整数の乗算多倍長整数の除算多倍長整数の平方根数列を多倍長整数に変換する多倍長整数を数列に変換するlong整数を多倍長整数に変換する多倍長整数をlong整数に変換する