если ты на little-endian странслируешь char a[2] в short int (как правило,
short int как раз в char[2] помещается), спасешь его в виде текста, а потом
тем же (обратным) способом странслируешь в char[2] на big-endian, то ты получишь другой
порядок байтов.
> Я думал машины, на которых байт состоит не из 8 бит, ещё в 1970-х годах исчезли. Или они и сейчас есть
Вообще-то, размер char'а в битах не только от машины зависит, но еще и от транслятора.
Например, на PDP-10 память адресовывалась 36-битными словами.
Поэтому был целый зоопарк трансляторов, с байтами по 9, 12, 18 и 36 бит.
Причем, иногда наблюдалось sizeof(char*) != sizeof(int*).
Еще был популярный подход с char'ами в 7 бит, но потом в стандартах прописали,
что в char'е должно быть ПО КРАЙНЕЙ МЕРЕ 8 бит.