Это старая версия документа!
Изменить порядок байтов для Cardianl
Писал программу работающую с PLC, долго не мог понять почему UInt32 он получает не тот что отправляю, потом осознал что он просто использует другой порядок байт.
Вот простенькая функция которая меняет Big-Endian в Little-Endian и наоборот.
function SwapEndian32(Value: Cardinal): Cardinal; inline; begin SwapEndian32 := (($FF000000 and Value) shr 24) or (($00FF0000 and Value) shr 8) or (($0000FF00 and Value) shl 8) or (($000000FF and Value) shl 24); end;
Для значений Word и SmallInt можно использовать обычную функцию SysUtils.Swap она просто меняет High и Low местами.