Родитель
							
								
									8f476f0fe7
								
							
						
					
					
						Сommit
						53bfac3d72
					
				| @ -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; |  | ||||||
| } |  | ||||||
					Загрузка…
					
					
				
		Ссылка в новой задаче