/* times.c, output some products */ #include unsigned int times( unsigned int ier, unsigned int cand ); unsigned int main() { /* output multiplication table */ unsigned int i, j; /* loop counters */ for (i = 0; i < 100; i = i + 10) { /* for each row */ for (j = 0; j < 100; j = j + 10) { /* for each column */ printf( "%5d", times( i, j ) ); } putchar( '\n' ); } return 0; } unsigned int times( unsigned int ier, unsigned int cand ) { /* return product of (multipl)ier and (multipli)cand */ unsigned int prod = 0; /* accumulator for partial products */ while (ier > 0) { if (ier & 1) { /* add partial product */ prod = prod + cand; } ier = ier >> 1; cand = cand << 1; } return prod; }