#include <stdio.h>

void printShort(short x) {
	int i;
	for(i = 8 * sizeof(short) - 1; i >= 0; i--) {
		printf("%c", (x & (1 << i)) ? '1' : '0');
		if(i % 4 == 0) printf(" ");
	}
	printf("\n");
}

void printLong(long x) {
	int i;
	for(i = 8 * sizeof(long) - 1; i >= 0; i--) {
		printf("%c", (x & (1 << i)) ? '1' : '0');
		if(i % 4 == 0) printf(" ");
	}
	printf("\n");
}

int main(void) {
	
	printf("unsigned short a, unsigned long b\n");
	unsigned short a = 077;
	printf("a = ");
	printShort(a);
	a = ~a;
	printf("~a = ");
	printShort(a);
	unsigned long b = a;
	printf("b = ");
	printLong(b);
	printf("\n");
	
	printf("unsigned short c, long d\n");
	unsigned short c = 077;
	printf("c = ");
	printShort(c);
	c = ~c;
	printf("~c = ");
	printShort(c);
	long d = c;
	printf("d = ");
	printLong(d);
	printf("\n");
	
	printf("short e, unsigned long f\n");
	short e = 077;
	printf("e = ");
	printShort(e);
	e = ~e;
	printf("~e = ");
	printShort(e);
	unsigned long f = e;
	printf("f = ");
	printLong(f);
	printf("\n");
	
	printf("short g, long h\n");
	short g = 077;
	printf("g = ");
	printShort(g);
	g = ~g;
	printf("~g = ");
	printShort(g);
	long h = g;
	printf("h = ");
	printLong(h);
	
	return 0;
}
