Чтобы изменить порядок битов:
procedure SwapEndiannessOfBits(var Value: cardinal);
var
tmp: cardinal;
i: Integer;
begin
tmp := 0;
for i := 0 to 8*sizeof(Value) - 1 do
inc(tmp, ((Value shr i) and $1) shl (8*sizeof(Value) - i - 1));
Value := tmp;
end;
Чтобы изменить порядок байтов:
procedure SwapEndiannessOfBytes(var Value: cardinal);
var
tmp: cardinal;
i: Integer;
begin
tmp := 0;
for i := 0 to sizeof(Value) - 1 do
inc(tmp, ((Value shr (8*i)) and $FF) shl (8*(sizeof(Value) - i - 1)));
Value := tmp;
end;
Я думаю, что последнее - это то, что вы ищете. Скорее всего, есть более быстрые и элегантные решения.
Отказ от ответственности: я могу быть совершенно не прав. Я чувствую себя немного смущенным в данный момент. Надеюсь, кто-то еще увидит этот вопрос и даст более определенный ответ!