From 22ca289d1f1d8c9a437bf244f7d8d056fc2c741b Mon Sep 17 00:00:00 2001 From: rogozinay Date: Tue, 16 Jan 2024 22:39:22 +0300 Subject: [PATCH] =?UTF-8?q?=D1=81=D0=BE=D0=B7=D0=B4=D0=B0=D0=B5=D0=BC=20?= =?UTF-8?q?=D0=BF=D0=B5=D1=80=D0=B5=D0=BC=D0=B5=D0=BD=D0=BD=D1=8B=D0=B5=20?= =?UTF-8?q?u8,=20u16=20=D0=B8=20u32,=20=D0=BF=D1=80=D0=B8=D1=81=D0=B2?= =?UTF-8?q?=D0=B0=D0=B8=D0=B2=D0=B0=D0=B5=D0=BC=20=D0=B8=D0=BC=20=D0=B7?= =?UTF-8?q?=D0=BD=D0=B0=D1=87=D0=B5=D0=BD=D0=B8=D0=B5=200x42?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.cpp | 44 ++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 42 insertions(+), 2 deletions(-) diff --git a/main.cpp b/main.cpp index 361d092..1bfedff 100644 --- a/main.cpp +++ b/main.cpp @@ -28,7 +28,29 @@ void print_in_hex(uint8_t byte) { cout << endl; } +const uint8_t* as_bytes(const void* data) { + return reinterpret_cast(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]); + + // Для удобства чтения: пробелы между байтами, по 16 байт на строку. + if ((i + 1) % 16 == 0) { + cout << '\n'; + } else { + cout << ' '; + } + } + cout << endl; +} + + int main() { + + // Тестирование функции nibble_to_hex //for (int i = 0; i <= 0xf; ++i) { //assert(nibble_to_hex(i) == nibble_to_hex(i)); @@ -52,8 +74,26 @@ int main() { assert(nibble_to_hex(0xf) == 'f'); // Печать байта в шестнадцатеричной и двоичной форме - uint8_t test_byte = 0x2f; - print_in_hex(test_byte); + //uint8_t test_byte = 0x2f; + //uint8_t test_byte = 0x0; + //uint8_t test_byte = 0xab; + //uint8_t test_byte = 0xff; + + uint8_t u8 = 0x42; + uint16_t u16 = 0x42; + uint32_t u32 = 0x42; + + std::cout << "u8 bytes: "; + print_in_hex(&u8, sizeof(u8)); + std::cout << '\n'; + + std::cout << "u16 bytes: "; + print_in_hex(&u16, sizeof(u16)); + std::cout << '\n'; + + std::cout << "u32 bytes: "; + print_in_hex(&u32, sizeof(u32)); + std::cout << '\n'; return 0; }