// Created by Professional on 10.12.2025. #include #include #include #include #include using namespace std; char nibble_to_hex(uint8_t i){ assert(0x0 <= i && i <= 0xf); switch (i) { case 0x0: return '0'; case 0x1: return '1'; case 0x2: return '2'; case 0x3: return '3'; case 0x4: return '4'; case 0x5: return '5'; case 0x6: return '6'; case 0x7: return '7'; case 0x8: return '8'; case 0x9: return '9'; case 0xA: return 'A'; case 0xB: return 'B'; case 0xC: return 'C'; case 0xD: return 'D'; case 0xE: return 'E'; case 0xF: return 'F'; default: return '?'; } } void print_in_hex(uint8_t byte) { cout<< nibble_to_hex(byte >> 4)<<""<= 0; --bit) { printf("%d", (byte >> bit) & 1); } } void print_in_binary(const void* data, size_t size) { const uint8_t* bytes = (const uint8_t*)data; for (size_t i = 0; i < size; ++i) { print_in_binary(bytes[i]); // вывод по одному байту printf(" "); // пробел между байтами if ((i + 1) % 4 == 0) // перевод строки после 4 байт printf("\n"); } if (size % 4 != 0) printf("\n"); } int main() { uint8_t u8 = 42; uint16_t u16 = 1025; uint32_t u32 = 1025; 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