#include /* putc() */ #define PutC(c) (putc((char)(c),stdout)) #define DEFAULT_BASE (10) /* Must be 2 through 36 */ #define PutD(d) (PutC( (char) ((d)<10)?('0'+(d)):('A'+(d)-10) )) #define Put_u(n) (Put_ubase((n), DEFAULT_BASE)) #define PutH_u(n)(Put_ubase((n), 16)) void Put_ubase(unsigned int n, int base) { /* NOTE: 2 <= base <= 36 */ unsigned int m; int i; /* Determine how many digits there are */ for (m = 1; n/m >= base; m*=base ) /* EMPTY LOOP */; /* Print out the digits one-by-one */ do { for(i = 0; n >= m; i++ ) n = n - m; PutD(i); m = m / base; } while ( m >= 1 ); } int main(void) { int i; for(i = 0; i < 256; i++) { Put_u(i); PutC(' '); PutC(':'); PutC(' '); Put_ubase(i,2); PutC(' '); PutC(':'); PutC(' '); Put_ubase(i,8); PutC(' '); PutC(':'); PutC(' '); Put_ubase(i,16); PutC(' '); PutC(':'); PutC(' '); PutH_u(i); PutC(' '); PutC(':'); PutC(' '); Put_ubase(i,36); PutC('\n'); } return 0; }