#include <stdio.h>
int main() {
// Объявление переменных в исходном порядке
char c1 = 'X', c2 = 'Y';
int i1, i2 = 0;
double d1 = 1.0, d2 = 2.0;
char *pc;
// Вывод адресов и размеров
printf("=== Исходный порядок: char, int, double ===\n"); printf("Переменная\tАдрес\t\t\tРазмер (байт)\n"); printf("c1\t\t%p\t%zu\n", (void*)&c1
, sizeof(c1
)); printf("c2\t\t%p\t%zu\n", (void*)&c2
, sizeof(c2
)); printf("i1\t\t%p\t%zu\n", (void*)&i1
, sizeof(i1
)); printf("i2\t\t%p\t%zu\n", (void*)&i2
, sizeof(i2
)); printf("d1\t\t%p\t%zu\n", (void*)&d1
, sizeof(d1
)); printf("d2\t\t%p\t%zu\n", (void*)&d2
, sizeof(d2
)); printf("pc\t\t%p\t%zu\n", (void*)&pc
, sizeof(pc
));
// Запись шестнадцатеричного значения с уникальными байтами
i1 = 0x1A2B3C4D; // байты: 0x1A, 0x2B, 0x3C, 0x4D
pc = (char*)&i1;
// Побайтовый вывод
printf("\nСодержимое i1 = 0x%08X по байтам:\n", i1
); for (int i = 0; i < (int)sizeof(i1); i++) {
printf("Байт %d: 0x%02X\n", i
, (unsigned char)pc
[i
]); }
// Анализ порядка байтов
if (pc[0] == 0x4D && pc[1] == 0x3C && pc[2] == 0x2B && pc[3] == 0x1A) {
printf("\n→ Система использует little-endian (младший байт по младшему адресу).\n"); } else if (pc[0] == 0x1A && pc[1] == 0x2B && pc[2] == 0x3C && pc[3] == 0x4D) {
printf("\n→ Система использует big-endian (старший байт по младшему адресу).\n"); } else {
printf("\n→ Неизвестный порядок байтов.\n"); }
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgppbnQgbWFpbigpIHsKICAgIC8vINCe0LHRitGP0LLQu9C10L3QuNC1INC/0LXRgNC10LzQtdC90L3Ri9GFINCyINC40YHRhdC+0LTQvdC+0Lwg0L/QvtGA0Y/QtNC60LUKICAgIGNoYXIgYzEgPSAnWCcsIGMyID0gJ1knOwogICAgaW50IGkxLCBpMiA9IDA7CiAgICBkb3VibGUgZDEgPSAxLjAsIGQyID0gMi4wOwogICAgY2hhciAqcGM7CgogICAgLy8g0JLRi9Cy0L7QtCDQsNC00YDQtdGB0L7QsiDQuCDRgNCw0LfQvNC10YDQvtCyCiAgICBwcmludGYoIj09PSDQmNGB0YXQvtC00L3Ri9C5INC/0L7RgNGP0LTQvtC6OiBjaGFyLCBpbnQsIGRvdWJsZSA9PT1cbiIpOwogICAgcHJpbnRmKCLQn9C10YDQtdC80LXQvdC90LDRj1x00JDQtNGA0LXRgVx0XHRcdNCg0LDQt9C80LXRgCAo0LHQsNC50YIpXG4iKTsKICAgIHByaW50ZigiYzFcdFx0JXBcdCV6dVxuIiwgKHZvaWQqKSZjMSwgc2l6ZW9mKGMxKSk7CiAgICBwcmludGYoImMyXHRcdCVwXHQlenVcbiIsICh2b2lkKikmYzIsIHNpemVvZihjMikpOwogICAgcHJpbnRmKCJpMVx0XHQlcFx0JXp1XG4iLCAodm9pZCopJmkxLCBzaXplb2YoaTEpKTsKICAgIHByaW50ZigiaTJcdFx0JXBcdCV6dVxuIiwgKHZvaWQqKSZpMiwgc2l6ZW9mKGkyKSk7CiAgICBwcmludGYoImQxXHRcdCVwXHQlenVcbiIsICh2b2lkKikmZDEsIHNpemVvZihkMSkpOwogICAgcHJpbnRmKCJkMlx0XHQlcFx0JXp1XG4iLCAodm9pZCopJmQyLCBzaXplb2YoZDIpKTsKICAgIHByaW50ZigicGNcdFx0JXBcdCV6dVxuIiwgKHZvaWQqKSZwYywgc2l6ZW9mKHBjKSk7CgogICAgLy8g0JfQsNC/0LjRgdGMINGI0LXRgdGC0L3QsNC00YbQsNGC0LXRgNC40YfQvdC+0LPQviDQt9C90LDRh9C10L3QuNGPINGBINGD0L3QuNC60LDQu9GM0L3Ri9C80Lgg0LHQsNC50YLQsNC80LgKICAgIGkxID0gMHgxQTJCM0M0RDsgIC8vINCx0LDQudGC0Ys6IDB4MUEsIDB4MkIsIDB4M0MsIDB4NEQKICAgIHBjID0gKGNoYXIqKSZpMTsKCiAgICAvLyDQn9C+0LHQsNC50YLQvtCy0YvQuSDQstGL0LLQvtC0CiAgICBwcmludGYoIlxu0KHQvtC00LXRgNC20LjQvNC+0LUgaTEgPSAweCUwOFgg0L/QviDQsdCw0LnRgtCw0Lw6XG4iLCBpMSk7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IChpbnQpc2l6ZW9mKGkxKTsgaSsrKSB7CiAgICAgICAgcHJpbnRmKCLQkdCw0LnRgiAlZDogMHglMDJYXG4iLCBpLCAodW5zaWduZWQgY2hhcilwY1tpXSk7CiAgICB9CgogICAgLy8g0JDQvdCw0LvQuNC3INC/0L7RgNGP0LTQutCwINCx0LDQudGC0L7QsgogICAgaWYgKHBjWzBdID09IDB4NEQgJiYgcGNbMV0gPT0gMHgzQyAmJiBwY1syXSA9PSAweDJCICYmIHBjWzNdID09IDB4MUEpIHsKICAgICAgICBwcmludGYoIlxu4oaSINCh0LjRgdGC0LXQvNCwINC40YHQv9C+0LvRjNC30YPQtdGCIGxpdHRsZS1lbmRpYW4gKNC80LvQsNC00YjQuNC5INCx0LDQudGCINC/0L4g0LzQu9Cw0LTRiNC10LzRgyDQsNC00YDQtdGB0YMpLlxuIik7CiAgICB9IGVsc2UgaWYgKHBjWzBdID09IDB4MUEgJiYgcGNbMV0gPT0gMHgyQiAmJiBwY1syXSA9PSAweDNDICYmIHBjWzNdID09IDB4NEQpIHsKICAgICAgICBwcmludGYoIlxu4oaSINCh0LjRgdGC0LXQvNCwINC40YHQv9C+0LvRjNC30YPQtdGCIGJpZy1lbmRpYW4gKNGB0YLQsNGA0YjQuNC5INCx0LDQudGCINC/0L4g0LzQu9Cw0LTRiNC10LzRgyDQsNC00YDQtdGB0YMpLlxuIik7CiAgICB9IGVsc2UgewogICAgICAgIHByaW50ZigiXG7ihpIg0J3QtdC40LfQstC10YHRgtC90YvQuSDQv9C+0YDRj9C00L7QuiDQsdCw0LnRgtC+0LIuXG4iKTsKICAgIH0KCiAgICByZXR1cm4gMDsKfQ==