#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; }