diff --git a/main.cpp b/main.cpp index 1547d8d..e220f6e 100644 --- a/main.cpp +++ b/main.cpp @@ -74,20 +74,47 @@ void print_in_binary(const void* data, size_t size) { int main() { uint8_t u8 = 42; - uint16_t u16 = 42; - uint32_t u32 = 42; + uint16_t u16 = 1025; + uint32_t u32 = 1025; - cout<< "u8 bytes: "; - print_in_hex(u8); - - cout<< endl << "u8 bytes: "; - print_in_binary(u8); - cout << endl << "u16 bytes: "; - print_in_binary(&u16,sizeof(u16)); - cout << "u32 bytes: "; - print_in_binary(&u32,sizeof(u32)); - cout<< endl; + uint16_t a, b, result; + char op; + printf("Enter the first operand (0..65535): "); + cin >> a; + printf("Enter the operator (&, | or ^):"); + cin >> op; + printf("Enter the second operand (0..65535): "); + cin >> b; + switch (op) { + case '&': + result = a & b; + break; + case '|': + result = a | b; + break; + case '^': + result = a ^ b; + break; + default: + cout << "Unknown operator: " << op << endl; + return 1; + } + printf("\nResult of the operation %hu %c %hu:\n", a, op, b); + printf("Hex: "); + print_in_hex(&a, sizeof(a)); + printf(" %c ", op); + print_in_hex(&b, sizeof(b)); + printf(" = "); + print_in_hex(&result, sizeof(result)); + printf("\n"); + printf("Bin: "); + print_in_binary(&a, sizeof(a)); + printf(" %c ", op); + print_in_binary(&b, sizeof(b)); + printf(" = "); + print_in_binary(&result, sizeof(result)); + printf("\n"); return 0; } //test23234 \ No newline at end of file