From 7d171d71f60302c4d837a8c2d74c5e41288cf534 Mon Sep 17 00:00:00 2001 From: NosovDI Date: Fri, 27 Oct 2023 14:43:53 +0700 Subject: [PATCH] add task1 --- .gitignore | 1 + task1.cpp | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 75 insertions(+) create mode 100644 .gitignore create mode 100644 task1.cpp diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..600d2d3 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.vscode \ No newline at end of file diff --git a/task1.cpp b/task1.cpp new file mode 100644 index 0000000..d730b4b --- /dev/null +++ b/task1.cpp @@ -0,0 +1,74 @@ +#include +#include +#include + +void print_in_hex(uint8_t byte) +{ + printf("%04X ", byte); +} + +void print_in_hex(const void* data, size_t size) +{ + const uint8_t* bytes = (const uint8_t*)data; + for (size_t i = 0; i < size; i++) + { + print_in_hex(bytes[i]); + if ((i + 1) % 16 == 0) + printf("\n"); + } + printf("\n"); +} + +void print_in_binary(uint8_t byte) +{ + for (int i = 7; i >= 0; i--) + { + printf("%d", (byte >> i) & 1); + if (i % 4 == 0) + printf(" "); + } +} + +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]); + if ((i + 1) % 4 == 0) + printf("\n"); + } + printf("\n"); +} + +int main() +{ + setlocale(LC_ALL, "Russian"); + + uint8_t byte = 127; + + printf("Исходное число: %hhu\n", byte); + printf("Число в шестнадцатеричном виде: "); + print_in_hex(byte); + printf("\n"); + printf("Число в двоичном виде: "); + print_in_binary(byte); + printf("\n"); + + const int SIZE = 10; + uint8_t data[] = { 0x12, 0x34, 0x56, 0x78, 0x9A, 0xBC, 0xDE, 0xF0, 0x00, 0xA1 }; + size_t size = sizeof(data); + + printf("Исходный блок данных в десятичном виде\n"); + for (int i = 0; i < SIZE; ++i) + printf("%hhu ", data[i]); + printf("\n"); + + printf("Блок данных в шестнадцатеричном виде\n"); + print_in_hex(data, size); + printf("Блок данных в двоичном виде\n"); + print_in_binary(data, size); + + system("pause"); + return 0; +} \ No newline at end of file