/////// File octdisp.C /////// #include const int DIG = 20; const int LOWDIGIT = 07; // least significant octal digit mask void octal_display(register int x) { register int i = 0; char s[DIG]; if (x < 0) { cout.put('-'); x = -x; } do { s[i++] = ((x & LOWDIGIT) + '0'); // mod performed with & } while ( ( x >>= 3) > 0 ); // divide x by 8 via shift cout.put('0'); do { cout.put(s[--i]); } while ( i > 0 ); cout.put('\n'); } int main() { octal_display(0); octal_display(-1); octal_display(0123456); octal_display(-0123456); octal_display(999); octal_display(-999); octal_display(2978); }