int main() { if (result == ERROR) { printf("gives an error\n"); } else { printf("is %d remainder %d\n", quotient, remainder); } } return 0; } int div32(long dividend, long divisor, long *quotient, long *remainder) { /* Initialization */ shifts = 0; *remainder = dividend; *quotient = 0; /* Shift divisor until most significant bit is set */ while ((divisor & 0x40000000) != 0x40000000) { divisor = divisor << 1; ++shifts; } /* Subtract and shift loop */ for (i = 0; i <= shifts; ++i) { *quotient = *quotient << 1; if (*remainder - divisor >= 0) { *remainder -= divisor; *quotient += 1; } divisor = divisor >> 1; } return SUCCESS; }