diff --git a/задание1.c b/задание1.c new file mode 100644 index 0000000..98887f9 --- /dev/null +++ b/задание1.c @@ -0,0 +1,53 @@ +#include +#include + +void print_byte_in_hex(uint8_t byte) { + printf("%02X", byte); +} + +void print_data_in_hex(const void* data, size_t size) { + const uint8_t* byteData = (const uint8_t*) data; + for (size_t i = 0; i < size; ++i) { + print_byte_in_hex(byteData[i]); + printf(" "); + if ((i + 1) % 16 == 0) { + printf("\n"); + } + } + if (size % 16 != 0) { + printf("\n"); + } +} + +void print_byte_in_binary(uint8_t byte) { + for (int i = 7; i >= 0; --i) { + printf("%d", (byte >> i) & 0x01); + } +} + +void print_data_in_binary(const void* data, size_t size) { + const uint8_t* byteData = (const uint8_t*) data; + for (size_t i = 0; i < size; ++i) { + print_byte_in_binary(byteData[i]); + printf(" "); + if ((i + 1) % 4 == 0) { + printf("\n"); + } + } + if (size % 4 != 0) { + printf("\n"); + } +} + +int main() { + uint8_t data[] = {0xDE, 0xAD, 0xBE, 0xEF, 0x01, 0x23, 0x45, 0x67}; + size_t size = sizeof(data); + + printf("Øåñòíàäöàòåðè÷íûé âûâîä:\n"); + print_data_in_hex(data, size); + + printf("Äâîè÷íûé âûâîä:\n"); + print_data_in_binary(data, size); + + return 0; +}