diff --git a/2.cpp b/2.cpp deleted file mode 100644 index c709ae4..0000000 --- a/2.cpp +++ /dev/null @@ -1,72 +0,0 @@ -#include <cstdint> -#include <iostream> -using namespace std; - -char hex_digit(uint8_t value) { - static const char hex_chars[] = "0123456789ABCDEF"; - return hex_chars[value]; -} - -void display_hex_byte(uint8_t byte) { - cout << hex_digit(byte >> 4) << hex_digit(byte & 0x0F); -} - -void display_hex_value(uint16_t data) { - uint8_t* bytes = reinterpret_cast<uint8_t*>(&data); - display_hex_byte(bytes[0]); - cout << " "; - display_hex_byte(bytes[1]); -} - -void display_binary_byte(uint8_t byte) { - for (int pos = 7; pos >= 0; --pos) { - cout << ((byte >> pos) & 1); - } -} - -void display_binary_value(uint16_t data) { - uint8_t* bytes = reinterpret_cast<uint8_t*>(&data); - display_binary_byte(bytes[0]); - display_binary_byte(bytes[1]); -} - -int main() { - uint16_t num1, num2; - char op; - - cin >> num1 >> op >> num2; - - uint16_t result; - switch (op) { - case '&': - result = num1 & num2; - break; - case '|': - result = num1 | num2; - break; - case '^': - result = num1 ^ num2; - break; - default: - cout << "Ошибка: доступны только &, | и ^" << endl; - return 1; - } - - cout << num1 << " " << op << " " << num2 << endl; - - display_hex_value(num1); - cout << " " << op << " "; - display_hex_value(num2); - cout << " = "; - display_hex_value(result); - cout << endl; - - display_binary_value(num1); - cout << " " << op << endl; - display_binary_value(num2); - cout << " =" << endl; - display_binary_value(result); - cout << endl; - - return 0; -}