Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

54 строки
1.2 KiB
Plaintext

#include <stdio.h>
#include <stdint.h>
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;
}