diff --git a/main.cpp b/main.cpp index 96c342c..eb65a96 100644 --- a/main.cpp +++ b/main.cpp @@ -1,13 +1,101 @@ // 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); + } + cout<< endl; +} + +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 = 0x42; + uint16_t u16 = 0x42; + uint32_t u32 = 0x42; + print_in_hex(u8); + cout<<" "; + cout<< endl; + cout << "u8 bytes: "; + print_in_hex(&u8, sizeof(u8)); + cout<< endl; + cout << "u16 bytes: "; + print_in_hex(&u16, sizeof(u16)); + cout<< endl; + cout << "u32 bytes: "; + print_in_hex(&u32, sizeof(u32)); + cout << '\n'; + print_in_hex(&u8,40); + + cout<< endl; + printf("%02X", u8); + + + + + cout<< endl << "Enter number: "; - size_t number_count; return 0;