#include <stdio.h>
int main() {
char cr1 = 'X', cr2 = 'Y';
int in1, in2 = 0;
double db1 = 1.0, db2 = 2.0;
char *ch;
// Вывод адресов и размеров
printf("c1\t\t%p\t%zu\n", (void*)&cr1
, sizeof(cr1
)); printf("c2\t\t%p\t%zu\n", (void*)&cr2
, sizeof(cr2
)); printf("i1\t\t%p\t%zu\n", (void*)&in1
, sizeof(in1
)); printf("i2\t\t%p\t%zu\n", (void*)&in2
, sizeof(in2
)); printf("d1\t\t%p\t%zu\n", (void*)&db1
, sizeof(db1
)); printf("d2\t\t%p\t%zu\n", (void*)&db2
, sizeof(db2
)); printf("pc\t\t%p\t%zu\n", (void*)&ch
, sizeof(ch
));
// Запись шестнадцатеричного значения с уникальными байтами
in1 = 0x1A2B3C4D; // байты: 0x1A, 0x2B, 0x3C, 0x4D
ch = (char*)&in1;
// Побайтовый вывод
printf("\nСодержимое in1 = 0x%08X по байтам:\n", in1
); for (int i = 0; i < (int)sizeof(in1); i++) {
printf("Байт %d: 0x%02X\n", i
, (unsigned char)ch
[i
]); }
// Анализ порядка байтов
if (ch[0] == 0x4D && ch[1] == 0x3C && ch[2] == 0x2B && ch[3] == 0x1A) {
printf("\nСистема использует little-endian (младший байт по младшему адресу).\n"); } else if (ch[0] == 0x1A && ch[1] == 0x2B && ch[2] == 0x3C && ch[3] == 0x4D) {
printf("\nСистема использует big-endian (старший байт по младшему адресу).\n"); } else {
printf("\nНеизвестный порядок байтов.\n"); }
return 0;
}
ICAgICNpbmNsdWRlIDxzdGRpby5oPgogICAgIAogICAgaW50IG1haW4oKSB7CiAgICAgCiAgICAgICAgY2hhciBjcjEgPSAnWCcsIGNyMiA9ICdZJzsKICAgICAgICBpbnQgaW4xLCBpbjIgPSAwOwogICAgICAgIGRvdWJsZSBkYjEgPSAxLjAsIGRiMiA9IDIuMDsKICAgICAgICBjaGFyICpjaDsKICAgICAKICAgICAgICAvLyDQktGL0LLQvtC0INCw0LTRgNC10YHQvtCyINC4INGA0LDQt9C80LXRgNC+0LIKICAgICAKICAgICAgICBwcmludGYoImMxXHRcdCVwXHQlenVcbiIsICh2b2lkKikmY3IxLCBzaXplb2YoY3IxKSk7CiAgICAgICAgcHJpbnRmKCJjMlx0XHQlcFx0JXp1XG4iLCAodm9pZCopJmNyMiwgc2l6ZW9mKGNyMikpOwogICAgICAgIHByaW50ZigiaTFcdFx0JXBcdCV6dVxuIiwgKHZvaWQqKSZpbjEsIHNpemVvZihpbjEpKTsKICAgICAgICBwcmludGYoImkyXHRcdCVwXHQlenVcbiIsICh2b2lkKikmaW4yLCBzaXplb2YoaW4yKSk7CiAgICAgICAgcHJpbnRmKCJkMVx0XHQlcFx0JXp1XG4iLCAodm9pZCopJmRiMSwgc2l6ZW9mKGRiMSkpOwogICAgICAgIHByaW50ZigiZDJcdFx0JXBcdCV6dVxuIiwgKHZvaWQqKSZkYjIsIHNpemVvZihkYjIpKTsKICAgICAgICBwcmludGYoInBjXHRcdCVwXHQlenVcbiIsICh2b2lkKikmY2gsIHNpemVvZihjaCkpOwogICAgIAogICAgICAgIC8vINCX0LDQv9C40YHRjCDRiNC10YHRgtC90LDQtNGG0LDRgtC10YDQuNGH0L3QvtCz0L4g0LfQvdCw0YfQtdC90LjRjyDRgSDRg9C90LjQutCw0LvRjNC90YvQvNC4INCx0LDQudGC0LDQvNC4CiAgICAgICAgaW4xID0gMHgxQTJCM0M0RDsgIC8vINCx0LDQudGC0Ys6IDB4MUEsIDB4MkIsIDB4M0MsIDB4NEQKICAgICAgICBjaCA9IChjaGFyKikmaW4xOwogICAgIAogICAgICAgIC8vINCf0L7QsdCw0LnRgtC+0LLRi9C5INCy0YvQstC+0LQKICAgICAgICBwcmludGYoIlxu0KHQvtC00LXRgNC20LjQvNC+0LUgaW4xID0gMHglMDhYINC/0L4g0LHQsNC50YLQsNC8OlxuIiwgaW4xKTsKICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IChpbnQpc2l6ZW9mKGluMSk7IGkrKykgewogICAgICAgICAgICBwcmludGYoItCR0LDQudGCICVkOiAweCUwMlhcbiIsIGksICh1bnNpZ25lZCBjaGFyKWNoW2ldKTsKICAgICAgICB9CiAgICAgCiAgICAgICAgLy8g0JDQvdCw0LvQuNC3INC/0L7RgNGP0LTQutCwINCx0LDQudGC0L7QsgogICAgICAgIGlmIChjaFswXSA9PSAweDREICYmIGNoWzFdID09IDB4M0MgJiYgY2hbMl0gPT0gMHgyQiAmJiBjaFszXSA9PSAweDFBKSB7CiAgICAgICAgICAgIHByaW50ZigiXG7QodC40YHRgtC10LzQsCDQuNGB0L/QvtC70YzQt9GD0LXRgiBsaXR0bGUtZW5kaWFuICjQvNC70LDQtNGI0LjQuSDQsdCw0LnRgiDQv9C+INC80LvQsNC00YjQtdC80YMg0LDQtNGA0LXRgdGDKS5cbiIpOwogICAgICAgIH0gZWxzZSBpZiAoY2hbMF0gPT0gMHgxQSAmJiBjaFsxXSA9PSAweDJCICYmIGNoWzJdID09IDB4M0MgJiYgY2hbM10gPT0gMHg0RCkgewogICAgICAgICAgICBwcmludGYoIlxu0KHQuNGB0YLQtdC80LAg0LjRgdC/0L7Qu9GM0LfRg9C10YIgYmlnLWVuZGlhbiAo0YHRgtCw0YDRiNC40Lkg0LHQsNC50YIg0L/QviDQvNC70LDQtNGI0LXQvNGDINCw0LTRgNC10YHRgykuXG4iKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBwcmludGYoIlxu0J3QtdC40LfQstC10YHRgtC90YvQuSDQv9C+0YDRj9C00L7QuiDQsdCw0LnRgtC+0LIuXG4iKTsKICAgICAgICB9CiAgICAgCiAgICAgICAgcmV0dXJuIDA7CiAgICB9