#include <stdio.h>
#include <stdlib.h>

int main() {

	char binary_string1[] = "1000100010001000";

	//                         str_to_parse    NULL, base that string is in
	int number1 = (int) strtol(binary_string1, NULL, 2);

	printf("Bin: %s, Hex: 0x%0x, Dec: %d\n", binary_string1, number1, number1);

	char binary_string2[] = "1000110011101111";
	int number2 = (int) strtol(binary_string2, NULL, 2);

	printf("Bin: %s, Hex: 0x%0x, Dec: %i\n\n", binary_string2, number2, number2);

	// Note: the results won't be printed in binary, but in hex
	// For lab 3, you need to implement a function that converts from decimal to binary
	printf("  %s\n& %s\n= 0x%0x\n\n", binary_string1, binary_string2, number1 & number2);
	printf("  %s\n| %s\n= 0x%0x\n\n", binary_string1, binary_string2, number1 | number2);
	printf("  %s\n^ %s\n= 0x%0x\n\n", binary_string1, binary_string2, number1 ^ number2);
	printf("~ %s\n= 0x%0x\n\n", binary_string2, ~number2);

	printf("The size of integer is %zu bytes\n", sizeof(number2));

	return 0;
}

