【发布时间】:2012-10-19 01:36:39
【问题描述】:
我一直在尝试编写一个函数,它接受两个指针(一个输入和一个输出)并将输入中的字节以相反的顺序写入输出。到目前为止,我还无法使其正常工作。
procedure ReverseBytes(Source, Dest: Pointer; Size: Integer);
var
Index: Integer;
begin
Move(Pointer(LongInt(Source) + Index)^, Pointer(LongInt(Dest) + (Size - Index))^ , 1);
end;
任何人都可以提出一个更好的方法来做到这一点。
谢谢。
【问题讨论】:
-
我敢打赌,您实际上并不想反转字节。您可能想要做的是将主机字节顺序转换为网络字节顺序。所有通讯库中都有用于此的功能。使用它们。它将使您的代码在逻辑上更准确。这就像 div 2 和 shr 1 之间的区别。当您将代码放在大端机器上时,它也会省去头疼的问题。
标签: delphi pointers byte reverse