#include <stdio.h>

void printHex(int start, int end) {
	for (int ii = start; ii <= end; ++ii)
		printf("decimal %d = %X hex\n", ii, ii);
}
void printBase(int n, int base) {
	if (n) {
		printBase(n / base, base);
		int rem = n % base;
		if (rem < 10) printf("%d", rem);
		else printf("%c", 'A' + (rem - 10));
	}
}
void printBinary(int n) {
	printBase(n, 2); puts("");
}
int main() {
	int n = 111;
	printf("n = %d, 2n = %d, n/4 = %d\n", n, n << 1, n >> 2);
	printf("n in hex = %x, n in octal = %o\n", n, n);
	printf("n & 0xF = %X, n | 0xF = %X\n", n & 0xF, n | 0xF);
	//printHex(0, 32);
	for (int base = 2; base <= 16; ++base) {
		printf("decimal %d = ", n);
		printBase(n, base);
		printf(" in base %d\n", base);
	}
	return 0;
}
