From 9214dff998c3c7d061d7cba2b986ec2f07a81275 Mon Sep 17 00:00:00 2001 From: KleptsovKD Date: Mon, 3 Feb 2025 22:38:48 +0300 Subject: [PATCH] Adding an overload of the print_in_hex function and Adding a type conversion function --- lab04/main.cpp | 47 +++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 45 insertions(+), 2 deletions(-) diff --git a/lab04/main.cpp b/lab04/main.cpp index f38e88f..048e98a 100644 --- a/lab04/main.cpp +++ b/lab04/main.cpp @@ -17,6 +17,33 @@ cout << nibble_to_hex(byte >> 4) << endl; } +const uint8_t* as_bytes(const void* data); + +void print_in_hex(const void* data, size_t size) +{ + const uint8_t* bytes = as_bytes(data); + for (size_t i = 0; i < size; i++) + { + print_in_hex(bytes[i]); + + if ((i + 1) % 16 == 0) + { + cout << '\n'; + } + else + { + cout << ' '; + } + } +} + +const uint8_t* as_bytes(const void* data) +{ + return reinterpret_cast(data); +} + + + int main() { @@ -37,9 +64,25 @@ int main() assert(nibble_to_hex(0xe) == 'e'); assert(nibble_to_hex(0xf) == 'f'); - uint8_t byte = 0xce; + uint8_t byte = 0xff; + + uint8_t u8 = 0x42; + cout << "u8 bytes: "; + print_in_hex(&u8, sizeof(u8)); + cout << '\n'; + + uint16_t u16 = 0x42; + cout << "u16 bytes: "; + print_in_hex(&u16, sizeof(u16)); + cout << '\n'; + + uint32_t u32 = 0x42; + cout << "u32 bytes: "; + print_in_hex(&u32, sizeof(u32)); + cout << '\n'; + - print_in_hex(byte); + //print_in_hex(byte); cout << "Press any key for exit... ";