다배장 정수의 감산


함수명
mpSub  다배장 정수끼리의 감산
형식
void mpSub(int *ret, int *a, int *b);
인수
ret   (출력) 다배장 정수끼리의 감산의 결과(a - b)
a, b  (입력) 다배장 정수(a 는 b 보다 큰가 동일하다)
함수치
없음
주의 사항
용례(mpSub-test.c )

프로그램(mpSub.c )
#define N 10000

void mpSub(int *ret, int *a, int *b)
{
    int  i;
    int  la, lb;
    int  *rr;
    int  x;

    la = *a;
    lb = *b;

    rr = ret;
    x = 0;
    for (i = 1; i <= la; i++) {
        x += *++a;
        if (i <= lb) x -= *++b;
        if (x >= 0) {
            *++rr = x;
            x = 0;
        } else {
            *++rr = x + N;
            x = -1;
        }
    }
    while (--i > 0)
        if (*rr-- ! = 0) break;
    *ret = i;
}
설명
10 진수의 계산과 같이, 하어보다 뺄셈을 실행한다. 위의 말 보다 「빌리고」가 필요한 때는, 위의 말에 1을 여분으로 당긴다.

관련 함수
다배장 정수의 가산, 다배장 정수의 곱셈, 다배장 정수의 제산, 다배장 정수의 평방근, 다배장 정수의 대소 비교, 수열을 다배장 정수로 변환하는, 다배장 정수를 수열로 변환하는, long 정수를 다배장 정수로 변환하는, 다배장 정수를 long 정수로 변환한다