|
|
|
|
@ -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
|