多倍長整数を数列に変換する


関数名
mpNum2Str  多倍長整数を数列に変換する
形式
void mpNum2Str(char *str, int *num);
引数
str  (出力)対応した数字列
num  (入力)多倍長整数
関数値
なし
注意事項
多倍長整数の配列の各要素 ai(i は 1 以上)は1語を表し、 1語で表し得る最大の整数は 9999 とする。語の長さは a0 の値で表す。すなわち、多倍長整数は
anKn-1+ an-1Kn-2+...+a2K+ a1
で表現する。ただし、K=10000、n=a0

用例(mpNum2Str-test.c

プログラム(mpNum2Str.c
#define N 10000

void mpNum2Str(char *str, int *num)
{
    int  i, j;
    char *ss;
    int  x;

    if (*num == 0) {
        *str++ = '0';
        *str = '\0';
        return;
    }

    ss = str - 1;
    for (i = *num; i > 0; i--) {
        x = *++num;
        for (j = 1; j < N; j *= 10) {
            *++ss = x % 10 + '0';
            x /= 10;
        }
    }
    while (*ss == '0') ss--;

    *(ss + 1) = '\0';    
    while (str < ss) {
        x = *str;
        *str++ = *ss;
        *ss-- = x;
    }
}
説明

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