fork download
  1. #include <stdio.h>
  2.  
  3. int main() {
  4. // Объявление переменных в исходном порядке
  5. char c1 = 'X', c2 = 'Y';
  6. int i1, i2 = 0;
  7. double d1 = 1.0, d2 = 2.0;
  8. char *pc;
  9.  
  10. // Вывод адресов и размеров
  11. printf("=== Исходный порядок: char, int, double ===\n");
  12. printf("Переменная\tАдрес\t\t\tРазмер (байт)\n");
  13. printf("c1\t\t%p\t%zu\n", (void*)&c1, sizeof(c1));
  14. printf("c2\t\t%p\t%zu\n", (void*)&c2, sizeof(c2));
  15. printf("i1\t\t%p\t%zu\n", (void*)&i1, sizeof(i1));
  16. printf("i2\t\t%p\t%zu\n", (void*)&i2, sizeof(i2));
  17. printf("d1\t\t%p\t%zu\n", (void*)&d1, sizeof(d1));
  18. printf("d2\t\t%p\t%zu\n", (void*)&d2, sizeof(d2));
  19. printf("pc\t\t%p\t%zu\n", (void*)&pc, sizeof(pc));
  20.  
  21. // Запись шестнадцатеричного значения с уникальными байтами
  22. i1 = 0x1A2B3C4D; // байты: 0x1A, 0x2B, 0x3C, 0x4D
  23. pc = (char*)&i1;
  24.  
  25. // Побайтовый вывод
  26. printf("\nСодержимое i1 = 0x%08X по байтам:\n", i1);
  27. for (int i = 0; i < (int)sizeof(i1); i++) {
  28. printf("Байт %d: 0x%02X\n", i, (unsigned char)pc[i]);
  29. }
  30.  
  31. // Анализ порядка байтов
  32. if (pc[0] == 0x4D && pc[1] == 0x3C && pc[2] == 0x2B && pc[3] == 0x1A) {
  33. printf("\n→ Система использует little-endian (младший байт по младшему адресу).\n");
  34. } else if (pc[0] == 0x1A && pc[1] == 0x2B && pc[2] == 0x3C && pc[3] == 0x4D) {
  35. printf("\n→ Система использует big-endian (старший байт по младшему адресу).\n");
  36. } else {
  37. printf("\n→ Неизвестный порядок байтов.\n");
  38. }
  39.  
  40. return 0;
  41. }
Success #stdin #stdout 0s 5312KB
stdin
Standard input is empty
stdout
=== Исходный порядок: char, int, double ===
Переменная	Адрес			Размер (байт)
c1		0x7ffeeacfe556	1
c2		0x7ffeeacfe557	1
i1		0x7ffeeacfe558	4
i2		0x7ffeeacfe55c	4
d1		0x7ffeeacfe560	8
d2		0x7ffeeacfe568	8
pc		0x7ffeeacfe570	8

Содержимое i1 = 0x1A2B3C4D по байтам:
Байт 0: 0x4D
Байт 1: 0x3C
Байт 2: 0x2B
Байт 3: 0x1A

→ Система использует little-endian (младший байт по младшему адресу).