PDA

Просмотр полной версии : Please!!! составьте программу в С++


bagira
09.06.2004, 11:02
Please!!! составьте пожалуйста программу в С++.

Алгоритм сложения длинных чисел(представленых как массив) реализуется функцией.
помимо n значного результата С возвращает бит переноса из старших разрядов d.
DIGIT беззнаковый тип данных длины m битов, а m символьная константа с подходящим значением.
Т - число длины 2m битов (TWODIGIT)
d - число длины m битов (DIGIT)
LODIGIT(T) число типа DIGIT, состоящее из младших m разрядов, а HIDIGIT(T) - число типа DIGIT, состоящее из старших m разрядов числа T
в языке С реализуют 2 макроопределения:
#define LODIGIT(T) ((DIGIT)(T))
#define HIDIGIT(T) ((DIGIT)((T)>>m)

DIGIT Add(DIGIT C[], const DIGIT A[], const DIGIT B[], int n)
{
TWODIGIT T;
DIGIT d = 0;
int i;
for (i = 0; i < n; i++)
{
T = (TWODIGIT)A[i] + B[i] + d;
C[i] = LODIGIT(T);
d = HIDIGIT(T);
}
return d;
}